我有一个类似以下的脚本:
#!/usr/bin/sh
var="ABC"
if [ $var == "ABC" ]
then
echo True
else
echo False
fi
Run Code Online (Sandbox Code Playgroud)
以上代码在 Solaris Sparc 和 Solaris X64 中不起作用。显示==未定义。上面的代码工作正常如果我替换==为=.
奇怪的是,如果我通过以下方法在没有任何更改的情况下运行上面的代码,它就可以工作。
#bash test.sh
Run Code Online (Sandbox Code Playgroud)
根据我的理解,即使使用 bash 脚本也不应该工作,因为在我使用的脚本的顶部,#!/bin/sh它不支持== 作为比较运算符。
任何人都可以解释为什么当我如上所述运行脚本时它会起作用。
注意:我知道 bash 确实识别==和=.