Globbing nach Variablensubstitution verhindern
Was ist die eleganteste Methode, um eine Shell-Variable (BASH) zu verwenden, die Zeichen enthält, die für Globbing reserviert sind (Vervollständigung des Dateinamens) und einige unerwünschte Ersetzungen auslösen? Hier ist das Beispiel:
<code>for file in $(cat files); do command1 < "$file" echo "$file" done </code>
Die Dateinamen enthalten Zeichen wie "[" oder "]". Ich habe grundsätzlich zwei Ideen:
1) Deaktiviere Globbing über set -f: Ich brauche es woanders
2) Entkomme den Dateinamen in Dateien: BASH beklagt sich über "Datei nicht gefunden", wenn in stdin weitergeleitet wird
Danke für jeden Vorschlag
Bearbeiten: Die einzige Antwort, die fehlt, ist, wie aus einer Datei gelesen wird, deren Name Sonderzeichen enthält, die für das Globbing verwendet werden, wenn sich der Dateiname in einer Shell-Variablen "$ file" befindet, z. G. Befehl1 <"$ file".