版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/niaolianjiulin/article/details/84947411
背景
将linux通过samba服务映射到windows平台,在win平台下建立一个脚本,然后切换到linux下执行,报错$’\r’: command not found。
原因
win平台下的换行是:回车符 + 换行符,也就是\r\n。unix下是换行符\n。linux下不识别\r为回车符,所以导致每行的配置都多了个\r,因此是脚本编码的问题。
解决
(1)在linux上执行$ dos2unix xx.sh,再次执行脚本,报错消失;
(2)在linux下用vim打开,强制保存为unix格式:
vim test.sh
:set ff?
// 显示dos的话
:set ff=unix
:wq