2010-09-28 61 views

回答

9

您可以檢查變量的長度。

if [[ -z $1 ]]; then 
    echo '$1 is zero-length. Please provide a value!' 
fi 

如果您只是想使用默認值,則可以使用括號擴展。

first_param=${1:-defaultvalue} 

${varname:-foo}構建將使用的varname的值,如果它被設置,或用什麼遵循:-如果沒有設置它。

+0

有用知道:'$ {參數默認}'和'$ {參數:-default}'是幾乎等同。額外的':'只有在聲明'parameter'時纔會有所作爲,但是爲空。 http://tldp.org/LDP/abs/html/parameter-substitution.html – Andrew 2013-12-10 20:24:26

1

你的意思是檢測一個值是否丟失,或者路徑中的目錄是否丟失? 對於前者:

MYPATH=$1 
if [[ -z $MYPATH ]] 
then 
    MYPATH=$MYDEFAULTPATH 
fi 

後者:

MYPATH=$1 
if [[ ! -d $MYPATH ]] 
then 
    MYPATH=$MYDEFAULTPATH 
fi 
+1

因爲他特別提到了bash,所以你應該使用'[[''over'['' – Daenyth 2010-09-28 16:40:43

+0

謝謝,修正了它 – iniju 2010-09-28 16:48:49

+0

爲什麼'[[''比'['更合適? – Elpezmuerto 2010-09-28 16:58:38