Jika suatu fungsi atau aplikasi memiliki lebih dari nol argumen, ia selalu memiliki argumen terakhir.
Jika Anda ingin membaca flag opsi dan pasangan nilai, seperti pada:
$ ./t.sh -o output -i input -l last
Dan Anda ingin menerima sejumlah variabel dari pasangan opsi / nilai,
Dan tidak ingin pohon "if .. then .. else .. fi" yang besar,
Kemudian setelah memeriksa jumlah argumen yang bukan nol dan genap,
Tulis loop sementara dengan keempat pernyataan eval ini sebagai badan, diikuti oleh pernyataan kasus menggunakan dua nilai yang ditentukan dalam setiap melewati loop.
Bagian rumit dari skrip ditunjukkan di sini:
#!/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