Quelle est la manière la plus élégante d'utiliser la variable shell (BASH) contenant des caractères réservés à la globbing (achèvement du nom de fichier) qui déclenche des substitutions indésirables? Voici l'exemple:Empêcher la globalisation après la substitution de variables
for file in $(cat files); do
command1 < "$file"
echo "$file"
done
Les noms de fichiers contiennent des caractères comme '[' ou ']'. J'ai essentiellement deux idées:
1) Désactiver le jokers jeu -f: J'ai besoin un autre endroit
2) échapper les noms de fichiers dans les fichiers: BASH se plaint de « fichier introuvable » lorsque la tuyauterie dans stdin
Thx pour toute suggestion
Edit: la seule réponse manquante est à lire à partir d'un fichier dont le nom contient des caractères spéciaux utilisés pour englobement lorsque le nom de fichier est dans une variable shell « $ file », e. g. command1 < "$ fichier".
Ceci est un bien indice, merci. Cela empêchera la globalisation dans la construction de la liste de la boucle for. Mais les deux lignes d'exécution vont toujours déclencher la globalisation après la substitution de variables. – fungs