2010-09-28 71 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