我想写一行:
if [$SERVICESTATEID$ -eq 2]; then echo "CRITICAL"; else echo "OK"; fi
所以在我的shell中进行测试我做了:
if [2 -eq 3]; then echo "CRITICAL"; else echo "OK"; fi
结果是
-bash: [2: command not found
OK
所以它不起作用。
答案 0 :(得分:10)
太空 - 最后的边疆。这有效:
if [ $SERVICESTATEID -eq 2 ]; then echo "CRITICAL"; else echo "OK"; fi
在[
之后和]
之前注意空格 - [
是命令名称!我在$
的末尾删除了额外的$SERVICESTATEID
。
另一种方法是拼出test
。然后你不需要最后的]
,这是我更喜欢的:
if test $SERVICESTATEID -eq 2; then echo "CRITICAL"; else echo "OK"; fi
答案 1 :(得分:1)
这样写,在[
和]
之前和之后需要空格
if [ 2 -eq 3 ]; then echo "CRITICAL"; else echo "OK"; fi
答案 2 :(得分:0)
更短的格式。
( [ 2 -eq 3 ] && echo "CRITICAL" ) || echo "OK"