我試圖做一個簡單的檢查,如果最後一個表達式是成功的:
if [ $? -ne 0 ]; then
chrome a.html
fi
這種形式的作品。但是,當我嘗試做:
if [ $? != "0" ]; then
chrome a.html
fi
或不帶「」,它總是執行。我不知道爲什麼會發生這種情況,如下所示:
if [ $(id -u) != "0" ]; then
#You are not the superuser
echo "You must be superuser to run this" >&2
exit 1
fi
我會認爲$?和$(id -u)都返回一個整數,因此比較!=「0」和-ne 0應該都可以工作。但是,它似乎$?與$(id -u)不同。任何解釋?
'$?'是上次執行的命令的退出代碼而不是'id -u'的輸出 – anubhava
是的我知道,我只是使用$(id -u)作爲比較,因爲它返回一個數字以及$? – mtveezy
你應該圍繞你的變量「補償變量擴展,否則你可能會遇到一些問題。」 – Lando