Syntax error: "(" unexpected报错处理
1.ubuntu 系统执行sh 命令报错
1. 数组语法
dash: 4: Syntax error: "(" unexpected
2. 双括号条件 [[ ]]
dash: 7: [[: not found
3. 进程替换
dash: 11: Syntax error: "(" unexpected
4. C 风格循环
dash: 14: Syntax error: Bad for loop variable
5. 正则匹配 =~
dash: 18: [[: not found
6. 数组操作
dash: 22: Bad substitution
2.报错情况说明
ubuntu默认使用的是dash环境,centos默认使用的bash环境,解释器有一定的区别
3.解决方法
方法一:不使用“sh”执行脚本,使用“./” ,如:(./test.sh)
方法二
- 交互界面修改dash为bash
dpkg-reconfigure dash
方法三:
- 查看当前解释器
readlink -f /bin/sh #会输出/bin/dash
- 直接强制将 /bin/sh 指向 bash
ln -sf /bin/bash /bin/sh
- 再次查看当前解释器
readlink -f /bin/sh # 会输出 /bin/bash
- 状态对比表


浙公网安备 33010602011771号