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

执行shell报错啊 求大神!!!
#!/bin/bash
c=""
echo "c=$c"
let "c+=1"
echo "c=$c"
echo "e=$e"
let "e+=1"
echo "e=$e"

shell文件是以上代码 名字是demo1.sh
执行shell的时候报错::
jiangmingtian@renyuqing /cygdrive/d/shell
$ sh demo1.sh
c=
")syntax error: operand expected (error token is "
c=
e=
")syntax error: invalid arithmetic operator (error token is "
e=

jiangmingtian@renyuqing /cygdrive/d/shell
$



但是这些语句每输入一句执行一次的话就不报错 为什么啊
我用的是cygdrive 求大神帮忙!!
shell cygdrive

------解决方案--------------------
引用:
Quote: 引用:

脚本本身没有什么错误。你这段脚本是不是在windows下编辑的,windows换行符和linux换行符不一样(windows换行是\r\n,LINUX换行是\n),你可以手动在Linux下再次敲入脚本再试试,或者检查每行结尾是否有^M


那我应该怎么改这个脚本啊 我确实是在windows下运行的
代码不多 帮我改下可以吗 谢谢


1.将行尾的字符去掉
sed -e 's/.$//' demo1.sh > demo1_trans.sh
mv demo1_trans.sh demo1.sh
2.或者通过vi强制转换
vi demo1.sh
:set ff=unix
:wq

------解决方案--------------------
引用:
那我应该怎么改这个脚本啊 我确实是在windows下运行的
代码不多 帮我改下可以吗 谢谢


dos2unix test.sh
./test.sh