$1
là đố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
.