Ich habe ein Skript, das Dateinamen in ein Array mit der folgenden Methode aus einem Q & A auf SO analysiert :
unset ARGS
ARGID="1"
while IFS= read -r -d $'\0' FILE; do
ARGS[ARGID++]="$FILE"
done < <(find "$@" -type f -name '*.txt' -print0)
Dies funktioniert hervorragend und verarbeitet alle Arten von Dateinamenvariationen perfekt. Manchmal übergebe ich jedoch eine nicht vorhandene Datei an das Skript, zB:
$ findscript.sh existingfolder nonexistingfolder
find: `nonexistingfile': No such file or directory
...
Unter normalen Umständen würde ich das Skript den Exit-Code mit so etwas wie erfassen lassen RET=$?
und damit zu entscheiden, wie es weitergeht. Dies scheint mit der obigen Prozessersetzung nicht zu funktionieren.
Wie ist die korrekte Vorgehensweise in solchen Fällen? Wie kann ich den Rückkehrcode erfassen? Gibt es andere geeignetere Methoden, um festzustellen, ob im ersetzten Prozess ein Fehler aufgetreten ist?