Скрипт неожиданно завершается, если каталог не существует - PullRequest
0 голосов
/ 21 ноября 2019

Я пишу сценарий оболочки и пытаюсь найти все файлы в некоторых местах. Места имеют переменную. Например:

CONFDIRS = (~/.config/syncer /etc/syncer ~/etc/syncer)

Итак, я написал цикл for для отображения всех возможных файлов:

search() {  #search for possible configurations
for i in ${CONFDIRS[@]}; do
        find $i -type f 
done

return 1
}

Моя проблема в том, что если один каталог не существует, программа завершает работу сошибка. Если я использую 2>/dev/null, программа завершит работу без ошибки, но программа не должна завершиться. Как я могу это сделать?

1 Ответ

1 голос
/ 21 ноября 2019

Ваша переменная CONFDIRS сбрасывается, если вы «определили» ее, используя

CONFDIRS = (...)

Обратите внимание на пробелы вокруг =. Просто удалите их.

Также не помешает процитировать ваши переменные. Напишите "$i" вместо $i.

...