Каков самый элегантный способ использования переменной оболочки (BASH), которая содержит символы, зарезервированные для globbing (завершение имени файла), которые вызывают некоторые нежелательные замены? Вот пример:Предотвращение подстановок после переменной подстановки
for file in $(cat files); do
command1 < "$file"
echo "$file"
done
Имена файлов содержат символы типа '[' или ']'. У меня в основном две идеи:
1) Выключить подстановка с помощью набора -f: мне нужен где-то еще
2) Побег имена файлов в файлах: BASH сетует «файл не найден» конвейеру на стандартный ввод
Thx для любого предложения
Edit: единственный ответ отсутствует, как читать из файла с именем, содержащим специальные символы, используемые для универсализации, когда имя файла в переменной оболочки «$ файла», е. г. command1 < "$ file".
Это хороший подскажите, спасибо. Это предотвратит перетаскивание в строках списка цикла for. Но две строки выполнения по-прежнему будут запускать глобус после замены переменных. – fungs