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

Antworten auf die Frage(3)

Ihre Antwort auf die Frage