2010-09-28 3 views

Répondre

9

Vous pouvez vérifier la longueur de la variable.

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

Si vous souhaitez uniquement utiliser une valeur par défaut, vous pouvez utiliser une extension de type accolade.

first_param=${1:-defaultvalue} 

La construction ${varname:-foo} utilisera la valeur de varname si elle est définie, ou utiliser ce qui suit le :- si elle n'est pas réglé.

+0

Utile à savoir: '$ {paramètre par défaut}' et '$ {paramètre: -default}' sont presque équivalentes. Le 'supplémentaire:' fait une différence que lorsque 'parameter' a été déclarée, mais est nulle. http://tldp.org/LDP/abs/html/parameter-substitution.html – Andrew

1

Voulez-vous dire détecter si une valeur est manquante, ou si les répertoires du chemin sont manquants? Pour l'ancien:

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

pour ce dernier:

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

Comme il mentionne spécifiquement bash, vous devriez utiliser '[[' 'sur [' – Daenyth

+0

Merci, fixé il – iniju

+0

Pourquoi est '[[' plus approprié que '['? – Elpezmuerto