我有一個接受用戶輸入的腳本,REFRESH選項是可選的。我需要測試以查看$ REFRESH是否存在並且等於字符串「REFRESH」,如果它接着運行特定的代碼塊。檢查一個變量是否已設置,值是ksh
用戶將執行
./export_data.sh <user> <type> [REFRESH]
如果我這樣做在PHP中我會簡單地使用isset()函數的功能,並在equivelent在ksh中存在嗎?
我曾嘗試以下,但這未能執行第二次測試$ REFRESH沒有設置:
if [ -n $REFRESH ] && [ $REFRESH == "REFRESH" ]
then
echo "variable is set and the expected value";
# do stuff
fi
我能想到這樣做的唯一的另一種方式是一個嵌套如果但這似乎凌亂:
if [ -n $REFRESH ]
then
if [ $REFRESH == "REFRESH" ]
then
echo "variable is set and the expected value";
# do stuff
fi
有沒有更好的方法來做到這一點?
不應該它是'if [「$ {REFRESH:-unset}」!=「unset」]'? – jlliagre 2012-01-09 17:51:07
不可以。問題:我需要測試$ REFRESH是否存在,並且等於字符串「REFRESH」_。 – 2012-01-09 18:15:21
確實。實際上有兩個問題,一個是明確的,而不是你的答覆直接解決的問題,另一個問題可能是真正的問題。無論如何,我回答了另一個問題。 – jlliagre 2012-01-10 05:41:39