Que signifie //, / dans ce cas?
for SCHEMA_ONLY_DB in ${SCHEMA_ONLY_LIST//,/}
do
SCHEMA_ONLY_CLAUSE="$SCHEMA_ONLY_CLAUSE or datname ~ "$SCHEMA_ONLY_DB""
done
SCHEMA_ONLY_LIST="mydb1,mydb2,mydb3,mydb4"
SCHEMA_ONLY_DB=mydb1
$ SCHEMA_ONLY_CLAUSE a maintenant été peuplé avec:
echo $SCHEMA_ONLY_CLAUSE
or datname ~ "mydb1" or datname ~ "mydb2" or datname ~ "mydb3"
Réponses:
4 pour la réponse № 1Du bash(1)
page de manuel (http://linux.die.net/man/1/bash):
${parameter/pattern/string}
Substitution de modèle. Le motif est développé pour produire un motif comme dans l’extension du nom de chemin. Le paramètre est développé et la correspondance la plus longue du motif avec sa valeur est remplacée par une chaîne. Si le motif commence par
/
, toutes les correspondances de modèle sont remplacées par une chaîne. Normalement, seul le premier match est remplacé. Si le motif commence par#
, il doit correspondre au début de la valeur étendue du paramètre. Si le motif commence par%
, il doit correspondre à la fin de la valeur étendue du paramètre. Si la chaîne est nulle, les correspondances de modèle sont supprimées et les/
le modèle suivant peut être omis. Si le paramètre est@
ou*
, l’opération de substitution est appliquée à chaque paramètre de position et l’expansion est la liste résultante. Si paramètre est une variable de tableau indexée avec@
ou*
, l'opération de substitution est appliquée à chaque membre du tableau à son tour, et le développement correspond à la liste résultante.
C'est, ${something//,/}
est étendu à la $something
avec toutes les occurrences de ,
enlevé.