4
ฉันจะจับรหัสทางออก / จัดการผิดได้อย่างถูกต้องเมื่อใช้การทดแทนกระบวนการได้อย่างไร
ฉันมีสคริปต์ที่แยกวิเคราะห์ชื่อไฟล์ลงในอาร์เรย์โดยใช้วิธีการต่อไปนี้ที่นำมาจากQ&A บน SO : 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=$?และใช้เพื่อตัดสินใจว่าจะดำเนินการอย่างไร ดูเหมือนจะไม่ทำงานกับการทดแทนกระบวนการด้านบน ขั้นตอนที่ถูกต้องในกรณีเช่นนี้คืออะไร? ฉันจะจับรหัสส่งคืนได้อย่างไร มีวิธีอื่นที่เหมาะสมกว่าหรือไม่ในการพิจารณาว่ามีบางอย่างผิดพลาดในกระบวนการทดแทนหรือไม่