file_name.sh: 3: Syntax error: “(“ unexpected

遇到错误

执行命令
$ ./example03.sh
报错
./example03.sh: 3: Syntax error: “(” unexpected
检查文档

#!/bin/sh
#function hello
function hello(){
    echo "hello SXU."
}
#main
hello		#函数调用
exit 0

再三确认没有错误。

查找原因

与实际使用的shell版本有关。
使用命令ls -l /bin/*sh 打印出来查看,例下:在这里插入图片描述
可以看到,sh被重定向到dash,因此,如果执行./example.sh,则使用的是dash 。

解决办法

  1. bash example.sh
  2. 将脚本第一行#!/bin/sh改为:#!/bin/bash ,然后执行./example.sh。
  3. 代码对于标准bash而言没有错,因为Ubuntu/Debian为了加快开机速度,用dash代替了传统的bash,解决方法就是取消dash:
    sudo dpkg-reconfigure dash ,在选择项中选No。
    三法任选其一即可成功
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值