SO의 Q & A에서 가져온 다음 방법을 사용하여 파일 이름을 배열로 구문 분석하는 스크립트가 있습니다 .
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=$?
진행 방법을 결정하는 데 사용합니다. 위의 프로세스 대체에서는 작동하지 않는 것 같습니다.
이와 같은 경우 올바른 절차는 무엇입니까? 리턴 코드를 어떻게 캡처 할 수 있습니까? 대체 프로세스에서 문제가 발생했는지 확인하는 다른 적절한 방법이 있습니까?