<分区>
正在学习Linux Shell脚本和流控
我坚持使用这个简单的脚本:
#!/bin/bash
x=2
if [ $x=5 ]; then
echo "x equals 5."
else
echo "x does not equal 5."
fi
执行命令时我在终端上得到的唯一响应是:x 等于 5。
谁能帮我找出代码中的错误?
提前致谢。
<分区>
正在学习Linux Shell脚本和流控
我坚持使用这个简单的脚本:
#!/bin/bash
x=2
if [ $x=5 ]; then
echo "x equals 5."
else
echo "x does not equal 5."
fi
执行命令时我在终端上得到的唯一响应是:x 等于 5。
谁能帮我找出代码中的错误?
提前致谢。
最佳答案
$x=5
是一个字符串,解释为 "2=5"
,它不为零,因此为真。
$x = 5
是两个字符串和它们之间的字符串相等运算符,计算结果为 false。
然而,这有点不安全,因为理论上 $x
可以为空,在这种情况下你会得到不合语法的测试 = 5
;安全变体是 "$x"= 5
。
如果需要比较数字,请使用-eq
而不是=
。例如,05 = 5
为假,但 05 -eq 5
为真。
关于Linux Shell 脚本 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25497869/