我有一个脚本,该脚本使用从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=$?
使用类似的代码捕获退出代码,然后使用它来决定如何继续。这似乎不适用于上面的流程替换。
在这种情况下正确的程序是什么?如何捕获返回码?还有其他更合适的方法来确定替换过程中是否出了问题吗?