我試圖理解爲什麼一個未設置的變量被評估爲0. 在一些腳本中,即時編寫變量將只在需要時設置,並且一些時間不會。 所以這種行爲將導致不正確的輸出。 是否意味着我必須預設所有變量或至少添加檢查它們是否已設置?爲什麼一個未設置的變量在bash中被評估爲0如果語句
#!/bin/bash
#myvalue=0 #comment to simulate an unset variable.
if [[ $myvalue -eq 0 ]] ; then
echo "OK"
fi
結果與OK:
bash -x test.sh
+ [[ '' -eq 0 ]]
+ echo OK
OK
嘗試'如果[$ myvalue -eq 0];然後' –
我不能使用-eq和[] only [[]],我使用它,因爲我需要評估一個數字。 –
當然你可以用'-eq'和'[';事實上,你是否應該使用'[[... -eq ...]]'是有爭議的,因爲你可以使用更易讀的'((... == ...))''代替。 – chepner