今天在测试loader脚本,按照惯例用wget http://****/loader.sh下载脚本,用chmod 777 loader.sh给脚本赋权,但后面执行脚本时出现了问题。
执行./loader.sh报错:
/bin/bash^M: 坏的解释器: 没有那个文件或目录
执行bash loader.sh同样报错:
loader.sh:行5: $'/r': 未找到命令
loader.sh:行7: $'/r': 未找到命令
loader.sh:行15: 未预期的符号$'{/r'' 附近有语法错误 'oader.sh:行15:
workerdir( ){
百度搜索得知,Windows换行字符为/n/r,而Linux换行符为/n,所以在Linux中执行脚本时会报错多了/r。
解决方法:
使用下面命令将文件Windows编码中的换行符/n/r替换成Linux下的换行符/n
sed -i 's//r$//' loader.sh