$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คุณสามารถทดสอบด้วย