小编Abh*_*eet的帖子

bash myscript.sh 在 bash 中运行,但第一行是 #!/usr/bin/sh

我有一个类似以下的脚本:

#!/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 确实识别===.

shell bash solaris shell-script

5
推荐指数
2
解决办法
5716
查看次数

标签 统计

bash ×1

shell ×1

shell-script ×1

solaris ×1