баш-скрипт разбивает имена файлов

Вы упомянули пустую строку во входном файле; если он находится в /tmp/inventory2.list, то в этом проблема.

Работайте несколькими способами; можно было бы протестировать переменную $ env, прежде чем пытаться ее использовать:

[ -n "$env" ] && hosts["$env"]+="$certname"$'\n'

Другой - выполнить grep для любого символа в файле перед его чтением:

grep . inventory2.list | while IFS='| ' read -r env certname; do
  hosts["$env"]+="$certname"$'\n'
done

(отрегулируйте grep, если в вашей «пустой» строке есть пробелы; например grep [az] )

0
18.01.2019, 01:06
1 ответ

Вместо использования findвы можете просто просмотреть сами файлы. Обратите внимание, что у меня есть двойные кавычки -"$r"; вам нужно сделать это, чтобы пространство в именах файлов оставалось нетронутым и не анализировалось оболочкой.

for r in *.fastq
do
    # Stuff using "$r"...
    :
done
2
28.01.2020, 02:30

Теги

Похожие вопросы