【linux】执行脚本报错:/bin/bash^M: bad interpreter: No such file or directory

问题描述

我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 

【linux】执行脚本报错:/bin/bash^M: bad interpreter: No such file or directory_第1张图片

dos格式的文件行尾为^M$

2.将DOS格式修改为UNIX格式

vim filename

##########################重要###########################

:set ff=unix

#########################################################

:wq

再查看一下:

cat -A filename

【linux】执行脚本报错:/bin/bash^M: bad interpreter: No such file or directory_第2张图片

unix格式的文件行尾为$

你可能感兴趣的:(Linux运维,bash,linux,unix)