Shell 脚本的意外输出

Unexpected Output of Shell Script

我在浏览旧教程时发现了一个 shell 脚本:

a=10
b=20
if  $a -eq $b 
then
   echo "a is equal to b"
else
   echo "a is not equal to b"
fi

当我将这个 shell 脚本存储为 test.sh 并执行它时。它给了我以下输出

test.sh: 3: test.sh: 10: not found
a is not equal to b

我不明白输出的第一行。如果有人能阐明正在发生的事情,我将不胜感激。

if 需要一个测试,如下所示:[ $a -eq $b ][[ $a -eq $b ]]

您的示例扩展为:if 10 -eq 20,此时 bash 查找名为 10 的程序,但显然不存在,因此出现错误消息。

缺少的程序显然评估为 false,这导致执行 else 语句。