У меня проблема с итерацией по переменной среды, содержащей список шаблонов файлов.Bash для цикла над строкой, содержащей '*'
Пример: "FilePattern = * XML * .log."
Код:
local log_file_pattern=(${FILEPATTERN})
for ((i=0; i < ${#log_file_pattern}; i++))
do
pattern="${log_file_pattern[$i]}"
... some more code ...
done
Я всегда получаю:.
- шаблон = * XML на первой итерации
- pattern = anaconda-post.log на второй итерации
Как я могу остановить цикл от интерпретации * .log?
Как вы устанавливаете 'FILEPATTERN'? – codeforester
Что вы пытаетесь сделать? дайте нам полную картину, у вас может возникнуть проблема с дизайном. Что вы собираетесь делать, в конце концов, с этими глотками? Обратите внимание, что ваша команда эквивалентна 'for f в $ {FILEPATTERN}; do pattern = $ f; ... еще немного кода ...; done'. Если вы действительно хотите отключить globs, вы можете 'set -f' в начале вашей функции, а затем снова включить globs с помощью' set + f'. –