我想在一個行寫:如何在shell中的一行中寫入if else?
if [$SERVICESTATEID$ -eq 2]; then echo "CRITICAL"; else echo "OK"; fi
所以,做一個測試,我的殼我所做的:
if [2 -eq 3]; then echo "CRITICAL"; else echo "OK"; fi
結果是
-bash: [2: command not found
OK
所以它不沒有工作。
我想在一個行寫:如何在shell中的一行中寫入if else?
if [$SERVICESTATEID$ -eq 2]; then echo "CRITICAL"; else echo "OK"; fi
所以,做一個測試,我的殼我所做的:
if [2 -eq 3]; then echo "CRITICAL"; else echo "OK"; fi
結果是
-bash: [2: command not found
OK
所以它不沒有工作。
空間 - 最後的邊界。這工作:
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
謝謝你的解釋。這是現在的作品。 – user6066403
這樣寫,前後殼[
和]
後
if [ 2 -eq 3 ]; then echo "CRITICAL"; else echo "OK"; fi
記住的是需要空間,即' ['是程序的名稱。並且在程序的名字必須是空格之後。這與'ls * .txt'中的相同。這個'ls * .txt'也會失敗。 – ceving
好吧thx現在的作品! – user6066403