У меня есть скрипт, который анализирует имена файлов в массив, используя следующий метод, взятый из Q & A на SO :
unset ARGS
ARGID="1"
while IFS= read -r -d $'\0' FILE; do
ARGS[ARGID++]="$FILE"
done < <(find "$@" -type f -name '*.txt' -print0)
Это прекрасно работает и прекрасно обрабатывает все типы вариаций имени файла. Однако иногда я передаю несуществующий файл в скрипт, например:
$ findscript.sh existingfolder nonexistingfolder
find: `nonexistingfile': No such file or directory
...
При нормальных обстоятельствах я хотел бы, чтобы скрипт захватывал код завершения с чем-то вроде RET=$?
и использовал его, чтобы решить, как действовать дальше. Это, похоже, не работает с процессом замены выше.
Какова правильная процедура в подобных случаях? Как я могу получить код возврата? Есть ли другие более подходящие способы определить, что-то пошло не так в замененном процессе?