以前偶尔会遇到执行:.sh文件出现
-bash: ./xxx.sh: /bin/sh^M: bad interpreter: No such file or directory
今天特意把它记录下来
解决方法1:
sed -i -e 's/\r$//' sky8g.sh
解决方法2:
在vi文件后输入
:set ff=unix
再执行
注:
sed
: 这是一个文本流编辑器,用于对文本进行各种操作,如替换、插入和删除等。-i
: 这个选项告诉sed
直接修改文件本身而不是输出到标准输出(屏幕)。-e
: 这个选项后面跟着要执行的一个或多个编辑命令。s/\r$//
: 这是一个替换命令,其含义如下:s/
: 表示替换操作。\r$
: 是一个正则表达式,表示匹配每一行结尾的回车符。\r
表示回车符,$
表示行尾。/
: 分隔符,用来界定正则表达式和替换字符串。/
: 另一个分隔符,表示替换为空,即移除匹配到的内容。g
: 如果需要全局替换每一行中的所有匹配项,可以加上这个标志。但在这个例子中没有使用g
,所以它只替换每行的第一个匹配项。写成s/\r$//g也是对的。