我一直在想辦法測試一個參數是否是使用命令expr的數字。如何測試參數是否是使用expr的腳本中的數字?
在我的腳本到目前爲止,我已經寫了:
expr $1 + 1 2>/dev/null
if [ $? -eq 2 -o $1 -lt 0 ]
then
echo "$1 is not a positive integer" >&2
exit 1
fi
我想在這裏做的是1添加到變量。如果這會引發錯誤(表示該變量不是數字),則結果將被髮送到/ dev/null。 之後,我測試返回碼是2還是變量小於0. 但是,這似乎不工作......任何想法?
P.S.請記住,我必須使用expr
你嘗試沒有'2>的/ dev/null'。另外,你是否知道'set -x'用於調試(和'set + x'關閉)。你有什麼樣的投入? (請編輯Q)。最後,「man expr」說什麼?祝你好運。 – shellter
'-o'不會在bash中短路。評估操作員的雙方。 – Phylogenesis