在Windows下编辑的.sh文件,会报如下错误:
-bash: ./文件名: /bin/bash^M: 坏的解释器: 没有那个文件或目录
原因:
脚本文件在windows下编辑过,windows下每一行的结尾是\n\r,而在linux下文件的结尾是\n,那么你在windows下编辑过的文件在linux下打开看的时候每一行的结尾就会多出来一个字符\r,
用cat -A filename时你可以看到这个\r字符被显示为^M
用cat -A filename查看会发现在每一句的末尾都有^M$字符
解决办法:
命令行输入:
sed -i 's/\r$//' 文件名
运行.sh文件:
chmod +x 文件名
sudo ./文件名