遇到错误
执行命令
$ ./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 。
解决办法
bash example.sh
- 将脚本第一行#!/bin/sh改为:#!/bin/bash ,然后执行./example.sh。
- 代码对于标准bash而言没有错,因为Ubuntu/Debian为了加快开机速度,用dash代替了传统的bash,解决方法就是取消dash:
sudo dpkg-reconfigure dash
,在选择项中选No。
三法任选其一即可成功