J'ai un script qui analyse les noms de fichiers dans un tableau en utilisant la méthode suivante tirée d' un Q&A sur SO :
unset ARGS
ARGID="1"
while IFS= read -r -d $'\0' FILE; do
ARGS[ARGID++]="$FILE"
done < <(find "$@" -type f -name '*.txt' -print0)
Cela fonctionne très bien et gère parfaitement tous les types de variations de noms de fichiers. Parfois, cependant, je passe un fichier inexistant au script, par exemple:
$ findscript.sh existingfolder nonexistingfolder
find: `nonexistingfile': No such file or directory
...
Dans des circonstances normales, je voudrais que le script capture le code de sortie avec quelque chose comme RET=$?
et l'utilise pour décider comment procéder. Cela ne semble pas fonctionner avec la substitution de processus ci-dessus.
Quelle est la procédure correcte dans des cas comme celui-ci? Comment capturer le code retour? Existe-t-il d'autres moyens plus appropriés pour déterminer si quelque chose s'est mal passé dans le processus de substitution?