مشابه فرمان let، ساختار (( ... )) نیز بسط و ارزیابی حسابی را مجاز میسازد. در سادهترین شکل آن، a=$(( 5 + 3 )) مقدار a را به 5 + 3، یا 8 تنظیم میکند. اگرچه، این ساختار پرانتزهای دوگانه مکانیسمی برای مجاز کردن دستکاری سبکِ C متغیرها در Bash نیز میباشد، برای مثال، (( var++ )).
مثال 8-5. دستکاری سبکِ C متغیرها
#!/bin/bash # # echo (( a = 23 )) # #+ echo "a (initial value) = $a" # (( a++ )) # echo "a (after a++) = $a" # (( a-- )) # echo "a (after a--) = $a" # (( ++a )) # echo "a (after ++a) = $a" # (( --a )) # echo "a (after --a) = $a" # echo # # #+ n=1; let --n && echo "True" || echo "False" # n=1; let n-- && echo "True" || echo "False" # # # echo (( t = a<45?7:11 )) # # ^ ^ ^ echo "If a < 45, then t = 7, else t = 11." # echo "t = $t " # echo # # # # #+ # #+اما فراتر از آن میرود. متاسفم Chet، راز برملا شد. # # exit
همچنین مثال 11-13 و مثال 8-4 را ببینید.