运行shell脚本出现Bad Substitution错误

通过sh xxx.sh运行某个shell脚本,发现出现Bad Substitution错误。

最终发现是shell脚本解释器的问题,我采用sh这个命令执行的脚本,对sh这个命令,查看其属性发现:
在这里插入图片描述
即最终指向的是dash这个解释器。而我们的shell脚本中,有一些数组操作,dash解释器不支持这些操作,而bash解释器支持这些操作,因此,我需要用bash解释器翻译我的shell脚本才行。

通过chmod +x xxx.sh ./xxx.sh
来执行我的shell脚本(此时使用的是bash解释器),此时发现没有了该错误。

总结:

遇到此类错误,不一定代表脚本内容有问题,很可能是用错了解释器。

参考:

  • Linux shell语言——dash和bash(可以把dash理解成轻量化的bash,并且现在Debian和Ubuntu中sh命令默认指向dash了,dash运行速度快,但比bash支持的语法和功能少一些,具体差异见该博客)
  • bash: Bad Substitution
    在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部