تست‌ها و مقایسه‌ها: جایگزین‌ها

فصل 36- گوناگون

‎36.3‎- تست‌ها و مقایسه‌ها: جایگزین‌ها

برای تست‌ها، ساختار ‎[[ ]]‎ می‌تواند مناسب‌تر از ‎[ ]‎ باشد. به همچنین، مقایسه‌های حسابی می‌توانند از ساختار ‎(( ))‎ بهره‌مند گردند.

a=8

# تمام مقایسه‌های زیر معادل هم هستند.
test "$a" -lt 16 && echo "yes, $a < 16"         # لیست and
/bin/test "$a" -lt 16 && echo "yes, $a < 16" 
[ "$a" -lt 16 ] && echo "yes, $a < 16" 
[[ $a -lt 16 ]] && echo "yes, $a < 16"          # نقل‌قول کردن متغیرها در داخل
(( a < 16 )) && echo "yes, $a < 16"             #   ‎[[ ]]‎ و ‎(( ))‎ ضروری نیست.

city="New York"
#                   یکبار دیگر، تمام مقایسه‌های زیر معادل هستند.
test "$city" \< Paris && echo "Yes, Paris is greater than $city"
                                  #          ترتیب بزرگتر اسکی.
/bin/test "$city" \< Paris && echo "Yes, Paris is greater than $city" 
[ "$city" \< Paris ] && echo "Yes, Paris is greater than $city" 
[[ $city < Paris ]] && echo "Yes, Paris is greater than $city"
                                  # نقل‌قول کردن ‎$city‎ لازم نیست.

# ‎S.C.‎ متشکرم