Linux 运行 sh 脚本时可能报
r
相关错误,本文记录解决方案。
问题复现
- 在 Windows 下建立脚本文件
test.sh
echo "Hello World"
echo "finish"
- 在 Linux 下运行
./test.sh: line 1: $'r': command not found
./test.sh: line 2: $'r': command not found
Hello World
./test.sh: line 4: $'r': command not found
./test.sh: line 5: $'r': command not found
finish
- 会报出
r
的错误
syntax error near unexpected token '$'dor''
问题原因
- Unix体系里,每行结尾只有“<换行>”,即“n”;
- Windows体系里面,每行结尾是“<换行><回 车>”,即“nr”
- Unix 执行 Windows 生成的脚本就可能报错
解决方案
核心目标为将
r
删除掉
- 方法一:运行下面的语句
sudo sed -i 's/r//' test.sh
- 方法二:运行下面的语句,然后再运行sudo bash test1215.sh
sudo sed -i 's/r//' test.sh
参考资料
- https://blog.csdn.net/zkw_1998/article/details/111207132