日期:2014-05-16  浏览次数:20700 次

Syntax error: "("和 /bin/sh^M: bad interpreter
本帖最后由 molaifeng 于 2012-10-25 21:21:50 编辑
弄了个ubuntu系统,捣鼓着shell,可是尽是拦路虎,先是在vim下输入个方法,运行时出现

Syntax error: "("

在网上找了下,有说 再此用vim打开此文件,shift+:冒号>输入:%s/\r//g,这种方法没用,提示没有匹配的,后来用shift+:冒号>输入set ff=unix,保存,还是木用。在公司没有这种情况啊。于是舍近求远,在本地机上共享了目录,用editplus编辑,催悲了

 /bin/sh^M: bad interpreter: No such file or directory

于是又是一顿找,发现是行尾的换行的问题,可是我也弄了。

root@xushaolong-virtual-machine:/mnt/hgfs/ubuntu# ./a
bash: ./a: /bin/sh^M: bad interpreter: No such file or directory
root@xushaolong-virtual-machine:/mnt/hgfs/ubuntu# dos2unix a
dos2unix: converting file a to Unix format ...
root@xushaolong-virtual-machine:/mnt/hgfs/ubuntu# ./a
./a: 2: ./a: Syntax error: "(" unexpected
root@xushaolong-virtual-machine:/mnt/hgfs/ubuntu# 

你说一个这样简单的东西东东都运行不了


#!/bin/sh
function test()
{
echo 1
}


------解决方案--------------------
你的代码我试了一下,没有报错啊,当然,也没有输出
你仔细看下你的a,是不是搞错了文件?
------解决方案--------------------
使用dos2unix命令将你的脚本文件转换成unix格式。