Saya memiliki skrip yang mem-parsing nama file ke dalam array menggunakan metode berikut yang diambil dari T&J di SO :
unset ARGS
ARGID="1"
while IFS= read -r -d $'\0' FILE; do
ARGS[ARGID++]="$FILE"
done < <(find "$@" -type f -name '*.txt' -print0)
Ini berfungsi dengan baik dan menangani semua jenis variasi nama file dengan sempurna. Namun, kadang-kadang, saya akan mengirimkan file yang tidak ada ke skrip, misalnya:
$ findscript.sh existingfolder nonexistingfolder
find: `nonexistingfile': No such file or directory
...
Dalam keadaan normal saya akan meminta skrip mengambil kode keluar dengan sesuatu seperti RET=$?
dan menggunakannya untuk memutuskan bagaimana untuk melanjutkan. Ini sepertinya tidak bekerja dengan proses substitusi di atas.
Apa prosedur yang benar dalam kasus seperti ini? Bagaimana saya bisa mendapatkan kode pengembalian? Apakah ada cara lain yang lebih cocok untuk menentukan apakah ada yang salah dalam proses pengganti?