在Windows安装了Docker,搭建了容器,然后呢,直接在Windows编辑了个脚本,放在容器映射到Windows的文件夹里,但是进入容器后执行脚本时却报错了,报错内容如下:
root@c9723da51ecd . /connect . sh
bash: ./connect. sh: /bin/bashAM: bad interpreter: No such file or directory
截图如下:
经过一番查找资料后,发现是文件格式错误了。
出现问题的主要原因是在Windows下用一些方便的编辑器写好, 然后拷贝文件到Linux下,又由于Windows和Linux的编码是不一样的,导致换行符等符号无法识别,也就是文件格式问题,从而出现错误。
在容器内,用vim connect.sh进入connect.sh这个文件, 然后在底部模式下, 执行 :set ff 查看一下, 可以得到fileformat=dos, 可得是文件格式问题。
解决方法:
# 在容器内,进入文件
vim connect.sh
# 进入connect.sh后,在底部模式下(按冒号即可进入),执行以下指令,将格式修改为unix格式
:set fileformat=unix
# 之后保存修改,然后就可以执行./connect.sh运行脚本了
:wq