Nếu một hàm hoặc một ứng dụng có nhiều đối số hơn 0, thì nó luôn có một đối số cuối cùng.
Nếu bạn muốn đọc cờ tùy chọn và các cặp giá trị, như trong:
$ ./t.sh -o output -i input -l last
Và bạn muốn chấp nhận một số lượng các cặp tùy chọn / giá trị khác nhau,
Và không muốn một cây "nếu .. thì .. khác .. fi",
Sau đó, sau khi kiểm tra số lượng đối số khác không và thậm chí,
Viết một vòng lặp while với bốn câu lệnh eval này là phần thân, theo sau là một câu lệnh tình huống sử dụng hai giá trị được xác định trong mỗi lần đi qua vòng lặp.
Phần khó khăn của kịch bản được thể hiện ở đây:
#!/bin/sh
# For each pair - this chunk is hard coded for the last pair.
eval TMP="'$'$#"
eval "PICK=$TMP"
eval TMP="'$'$(($#-1))"
eval "OPT=$TMP"
# process as required - usually a case statement on $OPT
echo "$OPT \n $PICK"
# Then decrement the indices (as in third eval statement)
:<< EoF_test
$ ./t.sh -o output -i input -l last
-l
last
$ ./t.sh -o output -l last
-l
last
$ ./t.sh -l last
-l
last
EoF_test