docker 脚本执报 $'\r': command not found

523 阅读1分钟

错误报文:

/docker-testt.sh: line 10: $'\r': command not found
/docker-testt.sh: line 12: $'\r': command not found
/docker-testt.sh: line 14: $'\r': command not found

项目执行docker ps 发现一个容器没有起来,通过 docker log 发现是一个shell脚本报 $'\r': command not found

原因:

出现的原因是该脚本在window上编辑过,widnow 上文件换行是 \r\n 而 linux上是 \n

处理方式:

脚本放到linux上 使用 vim 打开,并执行 :set ff=unix 命令 (执行后记得使用 :wq 保存一下)

Snipaste_2021-04-13_17-10-46.png Snipaste_2021-04-13_17-11-39.png

#=> vim docker-test.sh
#=> :set ff=unix
#=> :wq

身边没有linux怎么办:

在docker-compose 只能注释掉这个shell 脚本,让docker 先跑起来,跑起来后进去 docker 容器内,再使用 vim 修改文件