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