Je suis en train d'écrire un script shell bash, exécutez où l'utilisateur devrait passer un chemin en elle comme la variable $ 1. Comment puis-je déterminer si $ 1 est manquant et définir une valeur par défaut à la place?Set variable utilisateur par défaut dans les scripts bash
Répondre
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é.
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
Comme il mentionne spécifiquement bash, vous devriez utiliser '[[' 'sur [' – Daenyth
Merci, fixé il – iniju
Pourquoi est '[[' plus approprié que '['? – Elpezmuerto
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