在linux上执行 shell 脚本时候 报错
bash: ./test.sh: /bin/bash^M: bad interpreter: No such file or directory
造成这个错误的原因是sh脚本使用了在windows编辑,然后上传到linux服务器执行。
因为windows下的文件是dos格式,即每一行结尾以\r\n来标识,而linux下的文件是unix格式,行尾则以\n来标识。
解决方法:
第一步: 先查看并确认一下是否是 dos格式
vim ./test.sh 输入“:set ff” 若执行结果为fileformat=dos则为dos格式,若执行结果为fileformat=unix则为unix格式。
第二步,确认问题后,
vim ./test.sh ,执行 “: set ff=unix”,将文件设置为unix格式,然后执行“:wq”,保存退出
问题就解决了。
by the way
如果执行脚本的时候 出现 Permission define 的问题 需要脚本文件权限
执行命令
chmod +x run_experiments.sh
即可解决