2010-12-03 25 views

Répondre

5

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 
4

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. 
2

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.