问题描述
我linux服务器上写好的脚本test.sh
通过xftp发送本地windows电脑上,用qq发给别人,别人再用xftp传输到Linux服务器上执行
执行脚本报错:
[host1@host test]$ ./test.sh
-bash: ./test.sh: /bin/bash^M: bad interpreter: No such file or directory
解决方案
原因:shell脚本拷贝到windows系统上时变成了DOS格式,以\r\n
结尾,而unix系统以\n
结尾
1.查看原来的脚本格式
cat -A filename
dos格式的文件行尾为^M$
2.将DOS格式修改为UNIX格式
vim filename
##########################重要###########################
:set ff=unix
#########################################################
:wq
再查看一下:
cat -A filename
unix格式的文件行尾为$