У мене є сценарій, який аналізує імена файлів у масиві, використовуючи наступний метод, взятий із 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=$?
і використовувати його, щоб вирішити, як діяти далі. Схоже, це не працює з вищезазначеною заміною процесу.
Яка правильна процедура у таких випадках? Як я можу захопити код повернення? Чи існують інші більш підходящі способи визначити, чи щось пішло не так у процесі заміщення?