Tengo un script que analiza los nombres de archivo en una matriz utilizando el siguiente método tomado de un Q&A en SO :
unset ARGS
ARGID="1"
while IFS= read -r -d $'\0' FILE; do
ARGS[ARGID++]="$FILE"
done < <(find "$@" -type f -name '*.txt' -print0)
Esto funciona muy bien y maneja perfectamente todo tipo de variaciones de nombre de archivo. A veces, sin embargo, pasaré un archivo no existente al script, por ejemplo:
$ findscript.sh existingfolder nonexistingfolder
find: `nonexistingfile': No such file or directory
...
En circunstancias normales, el script capturaría el código de salida con algo parecido RET=$?
y lo usaría para decidir cómo proceder. Esto no parece funcionar con la sustitución del proceso anterior.
¿Cuál es el procedimiento correcto en casos como este? ¿Cómo puedo capturar el código de retorno? ¿Hay otras formas más adecuadas de determinar si algo salió mal en el proceso sustituido?