2014-06-27 90 views
0

我的腳本中有大量變量,並且如果任何一個變量都爲空,我希望腳本出錯。測試空變量

我知道我可以:

if [[ -z "$var_1" ]] || [[ -z "$var_2" ]] || ... [[ -z "$var_n" ]]; then 
    # failure message 
fi 

然而,我不能告訴哪個變量是空的,如果我這樣做的用戶。有沒有其他的方法可以讓我告訴用戶空的變量?

回答

3
#!/bin/sh 
foo=(var_1 var_2 var_n) 

for bar in ${foo[*]} 
do 
    if [[ ! ${!bar} ]] 
    then 
    echo $bar is empty 
    fi 
done 
1

第一次引用變量時只需使用${var:?var is empty or unset}。如果空字符串可以接受,並且只關心變量是否設置,請執行${var?var is unset}。在參數擴展中使用?會導致shell終止,並且如果該變量爲(空或未設置)。