我有一个脚本;它需要使用 bash 的关联数组(相信我)。
它需要在普通机器上运行,也需要在具有 /bin/bash 3.2 的某些附加机器上运行。
如果我将解释器声明/opt/userwriteablefolder/bin/bash4
为 bash 4.2 的位置,则它工作正常。但它只能在该机器上工作。
我想在脚本的开头进行测试,检查解释 shell 是什么,如果是 bash3.2,则调用bash4 $0 $@
. 问题是我想不出任何方法来确定解释 shell 是什么。我真的宁愿不做一个基于 $HOSTNAME 的决定,但如果有必要,它会起作用(这也很尴尬,因为它需要传递一个“我们已经完成这个”标志)。
出于几个原因,“只有两个脚本”不是一个好的解决方案。