我正在尝试运行sh脚本并在Mac上出现以下错误:
/usr/bin/perl^M: bad interpreter: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
ser*_*gio 47
在/ usr/bin中/ perl的^ M:
从脚本开头的行^M末尾删除.这是一个虚假的ASCII 13字符,让shell变得疯狂.usr/bin/perl#!
如果您没有看到该字符,可能需要使用二进制编辑器检查文件.
您可以这样做将文件转换为Mac行结束格式:
$ vi your_script.sh
Run Code Online (Sandbox Code Playgroud)
一次在vi类型:
:set ff=unix
:x
Run Code Online (Sandbox Code Playgroud)
问题是你在Linux/Unix/OSX机器上尝试使用DOS/Windows文本格式.
在DOS/Windows文本文件中,换行符(也称为换行符)是两个字符的组合:回车符(CR)后跟换行符(LF).在Unix文本文件中,换行符是单个字符:换行符(LF).
Dos2unix可以为您转换文件的编码,例如:
dos2unix yourfile yourfile
Run Code Online (Sandbox Code Playgroud)
如需帮助,请运行:man dos2unix.
您的脚本中似乎有奇怪的行结尾:^M是回车符\r.将您的脚本转换为Unix行结尾(\n而不是\r\n,这是在Windows系统上结束的行).
| 归档时间: |
|
| 查看次数: |
81147 次 |
| 最近记录: |