Keep on going, never give up.

Syntax error: "(" unexpected (expecting "fi")

今天在Ubuntu 14上编译Android工程时,在执行sh ./test.sh时总是报告某行“Syntax error: "(" unexpected (expecting "fi")”错误。

单独执行./test.sh则又不会出错,查了一下脚本没有发现错误,经过搜索说可能是sh的链接问题。

首先到/bin/下面查看当前链接:ls -l /bin/sh

发现sh默认是指向dash的。按照文末参考文章中的方法修改链接,似乎还是没有效果。

经过搜索发现dash和bash是不同的(一直把dash看成bash了!!),那么到底是bash还是该是dash呢,Ubuntu安装时默认使用dash,据说dash比bash体积小速度快,但原来在bash下正常运行sh脚本在dash下运行往往有问题,而且提示错误模糊,说明dash的兼容似乎也有问题。

不过已经有人发现规避问题的方法,就是重新配置dash:

sudo dpkg-reconfigure dash

会弹出重新配置dash界面,并选择“no”不使用dash。

参考资料:

http://www.linuxidc.com/Linux/2012-03/57493.htm

http://blog.163.com/sunshine_linting/blog/static/448933232013017111324603/

相关评论(0):  

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

订阅博客

最新文章

本站采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载也必须遵循“署名-非商业用途-保持一致”的创作共用协议. 返回顶部
Copyright@2005-2016 Metsky.com, All rights Reserved.