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

今天在Ubuntu 16.04上运行某些脚本时,总是报告某行“Syntax error: "(" unexpected (expecting "fi")”错误。

查了一下脚本没有发现错误,经过搜索说可能是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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 自己写的一个while循环结构总是报错,纠结了一下午,各种查资料、改命令行,最后发现是ubuntu系统解释器的原因...
    无言89阅读 28,512评论 0 11
  • 第 2 章 SHELL 基础知识2.1 shell脚本我们在上面简单介绍了一下什么是shell脚本,现在我们来进一...
    LiWei_9e4b阅读 1,602评论 0 0
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,932评论 0 10
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,539评论 0 5
  • 幽园篱笆外,繁花似星开。 纵使花期迟,依然绽风采。 看到在春去百花落,绿肥红瘦的初夏盛开的朵朵小花,我想到了一位班...
    细雨蒙蒙A阅读 929评论 10 6