I ont la ligne suivante dans mon script shell:shell Bash variables de script
if [-n "$ {USE_X: +1}"]; alors
Je n'arrive pas à comprendre ce que signifie la partie ": +1". Des idées?
I ont la ligne suivante dans mon script shell:shell Bash variables de script
if [-n "$ {USE_X: +1}"]; alors
Je n'arrive pas à comprendre ce que signifie la partie ": +1". Des idées?
Regardez here. Cette URL fournit l'explication suivante:
$ {paramètre: + alt_value}
Si le jeu de paramètres, utilisez alt_value, utilisez autre chaîne vide.
et a l'exemple suivant:
echo
echo "###### \${parameter:+alt_value} ########"
echo
a=${param4:+xyz}
echo "a = $a" # a =
param5=
a=${param5:+xyz}
echo "a = $a" # a =
# Different result from a=${param5+xyz}
param6=123
a=${param6:+xyz}
echo "a = $a" # a = xyz
essentiellement si $ USE_X est défini, l'instruction est évaluée à 1, sinon nulle. Probablement similaire à
if [ -z $USE_X ];
then
echo 1
else
echo ""
fi
de http://tldp.org/LDP/abs/html/parameter-substitution.html#PATTMATCHING:
${parameter+alt_value}, ${parameter:+alt_value}
If parameter set, use alt_value, else use null string.
Both forms nearly equivalent. The : makes a difference only when parameter has been declared and is null, see below.
depuis aioobe déjà répondu à la question elle-même, voici un moyen de rechercher une longue page de manuel comme l'utilisation d'une expression rationnelle de Bash, en utilisant cette question comme un exemple:
/\{.*:\+
La première barre oblique inverse place le less
(le visualiseur de page de manuel) en mode de recherche; la regex dit de chercher une parenthèse gauche, suivie de n'importe quelle quantité de choses, puis un deux-points suivi d'un signe plus. Le crochet et le plus doivent être échappés car ils ont une signification particulière pour l'analyseur d'expressions rationnelles.