好吧,对于花费更多时间使用bash的人来说,这可能是非常明显的。
我正在尝试运行此代码:
#!/bin/bash
if ["1" -eq "2"]
then
echo "True"
else
echo "False"
fi
但是当我执行该文件时,它会发回
./test.sh: line 3: 1: command not found
False
必须有一些我不知道的重要事项。我看到人们在括号后使用分号,这似乎没有任何区别......:S
答案 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
加上你需要在括号周围留出一些空间。