বিন্যাস
ব্যাশের মধ্যে প্রাচীনতম বিকল্পগুলি (যেহেতু বাশ 3.0.০++) হ'ল:
$ a=(aa bb cc dd ee)
$ echo "${a[@]:(-1)} ${a[@]: -1} ${a[@]:(~0)} ${a[@]:~0}"
ee ee ee ee
(ডিফল্ট মান ব্যবহার করুন) এর বিস্তৃতি হিসাবে :
একটি বিয়োগের অনুসরণের ব্যাখ্যা এড়াতে স্থানটির প্রয়োজন space-
"${var:-abc}"
~
একটি গাণিতিক হয় , bitwise অস্বীকৃতি (এক সম্পূরক সমতূল্য বা সমস্ত বিট টুসকি )। ম্যান বাশ থেকে:
শিল্প মূল্যায়ন
! ~ logical and bitwise negation
যেহেতু বাশ -২.২ + +:
$ echo "${a[-1]} ${a[(~0)]}"
ee ee
যেহেতু বাশ 5.0+ এছাড়াও:
$ echo "${a[~0]}"
ee
সমস্ত বাশ সংস্করণের জন্য (পুরানো বাশ):
$ echo "${a[ ${#a[@]}-1 ]}" # spaces added **only** for readability
ee
@
অবস্থানগত আর্গুমেন্টের জন্য (বাশ ২.০১ থেকে):
$ set aa bb cc dd ee
$ echo "${@:(-1)} ${@:~0} ${@: -1} ${@:$#} ${!#}"
ee ee ee ee
সমস্ত শাঁসের জন্য বহনযোগ্য সমাধান হ'ল ইওল ব্যবহার করা:
eval printf '"%s\n"' \"\${$#}\"
$@
ঠিক কোন অ্যারে নয় (সাবস্ক্রিপশন করা যাবে না)। এটির জন্য, শেল স্ক্রিপ্টে শেষ আর্গুমেন্টটি প্রাপ্ত হওয়া দেখুন ।