$1là đối số đầu tiên.
$@là tất cả trong số họ.
Làm thế nào tôi có thể tìm thấy đối số cuối cùng được chuyển đến một tập lệnh shell?
${!#}. Kiểm tra nó bằng cách sử dụng bash -c 'echo ${!#}' arg1 arg2 arg3. Đối với bash , ksh và zsh , câu trả lời của Dennis Williamson đề xuất ${@: -1}. Hơn nữa ${*: -1}cũng có thể được sử dụng. Kiểm tra nó bằng cách sử dụng zsh -c 'echo ${*: -1}' arg1 arg2 arg3. Nhưng điều đó không làm việc cho dash , csh và tcsh .
${!#}, không giống như ${@: -1}, cũng hoạt động với mở rộng tham số. Bạn có thể kiểm tra nó với bash -c 'echo ${!#%.*}' arg1.out arg2.out arg3.out.