解决Ubuntu下编译.sh文件报错 “[: XXXX: unexpected operator”

今天拿了个在CentOS下编译好的sh脚本放在Ubuntu下运行,结果提示错误"[: XXXX: unexpected operator"。只要是脚本中有出现[]的地方都报错。

+ [ 64x == 64x -a trusty == precise ]

xxx.sh: 13: [: 64x: unexpected operator

+ [ 64x == 64x -a trusty == trusty ]

xxx.sh: 21: [: 64x: unexpected operator


上网查了资料发现,因为Ubuntu默认的sh是连接到dash的,而dash跟bash的不兼容所以出错。既然原因找到,那么就可以把默认连接改成bash即可

$  sudo dpkg-reconfigure dash

运行命令后会出现配置框,选择NO即可。

再次编译文件,通过。

weinxin
聂扬帆博客
一个分享IT运维相关工作经验和实战技巧的个人博客

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: