在bash中尝试整数相等时,“未找到命令”

时间:2010-12-17 08:35:16

标签: bash

好吧,对于花费更多时间使用bash的人来说,这可能是非常明显的。

我正在尝试运行此代码:

#!/bin/bash

if ["1" -eq "2"] 
then
    echo "True"
else
    echo "False"
fi

但是当我执行该文件时,它会发回

./test.sh: line 3: 1: command not found
False

必须有一些我不知道的重要事项。我看到人们在括号后使用分号,这似乎没有任何区别......:S

3 个答案:

答案 0 :(得分:22)

您需要在[之后和]之前添加空格,如下所示:

if [ "1" -eq "2" ]

但是,这种方式已被弃用,更好的使用方法是:

#!/bin/bash

if ((1 == 2)) 
then
    echo "True"
else
    echo "False"
fi

答案 1 :(得分:9)

尝试在括号周围添加空格:

if [ "1" -eq "2" ]

答案 2 :(得分:7)

yep eq仅用于算术比较。

要进行字符串比较,您必须使用=

#!/bin/bash

if [ "1" = "2" ] 
then
    echo "True"
else
    echo "False"
fi

加上你需要在括号周围留出一些空间。