本文主要是介绍运行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
这篇关于运行shell脚本出现Bad Substitution错误的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!