$1
เป็นอาร์กิวเมนต์แรก
$@
คือทั้งหมดของพวกเขา
ฉันจะหาอาร์กิวเมนต์สุดท้ายที่ส่งไปยังเชลล์สคริปต์ได้อย่างไร
${!#}
เสนอที่เรียบง่าย bash -c 'echo ${!#}' arg1 arg2 arg3
ทดสอบได้โดยใช้ สำหรับทุบตี , kshและzshที่คำตอบที่เดนนิสวิลเลียมสัน${@: -1}
เสนอ นอกจากนี้${*: -1}
ยังสามารถใช้ zsh -c 'echo ${*: -1}' arg1 arg2 arg3
ทดสอบได้โดยใช้ แต่นั่นไม่ได้ทำงานให้กับประ , cshและtcsh
${!#}
ไม่เหมือน${@: -1}
กันยังใช้งานได้กับการขยายพารามิเตอร์ bash -c 'echo ${!#%.*}' arg1.out arg2.out arg3.out
คุณสามารถทดสอบด้วย