当我们在windows编写一个shell脚本,如:
hello.png

然后放在linux下执行时就会出现报错
解释器错误.png

出现此问题的原因是:在windows环境下,回车换行保存为\n\r,而在unix环境下回车换行保存为\n,那么你在windows下编写的脚本在linux下打开看的时候每一行的结尾就会多出来一个字符\r

使用cat -A hello.sh查看可看到r被显示为^M
cat.png

使用vi hello.sh然后输入' : '切换到底线命令模式再输入set,可以看到文件格式为dos
fileformat.png

解决办法:
1、vi打开文件输入' : '切换到底线命令模式,在输入set ff=unix
ff.png

2、sed -i 's/\r$//' filename删除掉末尾字符
sed.png

Last modification:January 22nd, 2020 at 10:08 pm
如果觉得我的文章对你有用,请随意赞赏