ฉันพยายามรับวันที่แก้ไขล่าสุดของไฟล์ด้วยคำสั่งนี้
TM_LOCAL=`ls -l --time-style=long-iso ~/.vimrc | awk '{ print $6" "$7 }'`
TM_LOCAL มีค่าเช่น "2012-05-16 23:18" หลังจากเรียกใช้งานบรรทัดนี้
ฉันต้องการตรวจสอบ PIPESTATUS เพื่อดูว่ามีข้อผิดพลาดหรือไม่ ตัวอย่างเช่นหากไฟล์ไม่มีอยู่ls
ส่งคืน 2 แต่$?
มีค่า 0 เนื่องจากมีค่าส่งคืนawk
เป็น
ถ้าฉันรันคำสั่งนี้เพียงอย่างเดียวฉันสามารถตรวจสอบค่าส่งคืนของ ls โดยดูที่ ${PIPESTATUS[0]}
ls -l --time-style=long-iso ~/.vimrc | awk '{ print $6" "$7 }'
แต่$PIPESTATUS
ไม่ทำงานอย่างที่ฉันคาดไว้ถ้าฉันกำหนดเอาต์พุตให้กับตัวแปรตามตัวอย่างแรก ในกรณีนี้$PIPESTATUS
อาร์เรย์มีเพียง 1 องค์ประกอบซึ่งเหมือนกับ$?
ดังนั้นคำถามคือฉันจะได้รับทั้งสอง$PIPESTATUS
และกำหนดผลลัพธ์ให้ตัวแปรในเวลาเดียวกันได้อย่างไร