分页: 1 / 1

提示语法错误 "do" unexpected(expecting "fi")

发表于 : 2011-04-26 14:42
tosail2010
我安装的是Ubuntu10.04
在bash下运行一个shell的脚本文件,提示错误如标题,下文是运行的一段脚本,开头是行号
#19 if [ -d ./source/osdrv/toolchains/arm-arm-linux ]
#20 then
#21 cd ./source/osdrv/toolchains/arm-arm-linux
#22 chmod 777 cross.install
#23 ./cross.install
#24 cd -
#25 fi
#26
#27 if [ -d ./source/osdrv/toolchains/arm-arm-linux ]
#28 then
#29 cd ./source/osdrv/toolchains/arm-arm-linux
#30 chmod 777 cross.install
#31 ./cross.install
#32 cd -
#33 fi

错误是在第25,和30行出现的

感觉像是个bug

Re: 提示语法错误 "do" unexpected(expecting "fi")

发表于 : 2011-04-26 20:34
lexdene
if后面应该有个分号吧?

代码: 全选

if [ -d ./source/osdrv/toolchains/arm-arm-linux ];
这样您试试。

Re: 提示语法错误 "do" unexpected(expecting "fi")

发表于 : 2011-04-26 22:14
fnan
无法重现问题。

Re: 提示语法错误 "do" unexpected(expecting "fi")

发表于 : 2011-04-28 16:55
aerofox
确认是这个文件中的错误吗? 是不是 cross.install 文件中的错误?

Re: 提示语法错误 "do" unexpected(expecting "fi")

发表于 : 2011-04-29 9:08
tosail2010
我删除了原来sh的软链接,自己创建一个指向bash的软链接,问题就解决了。

Re: 提示语法错误 "do" unexpected(expecting "fi")

发表于 : 2011-04-29 10:00
tosail2010
lexdene 写了:if后面应该有个分号吧?

代码: 全选

if [ -d ./source/osdrv/toolchains/arm-arm-linux ];
这样您试试。
加分号,通常后面跟then,如果then是另起一行的话。
if [ ...... ]; then
或者
if [ ...... ]
then

但是我也见过这样写的
if [ ....... ];
then
谁给说说,困惑。

Re: 提示语法错误 "do" unexpected(expecting "fi")

发表于 : 2011-07-18 21:29
malespy
貌似运行 sudo dpkg-reconfigure dash
之后选择“否”,就可以了