Bash Scripting - توضیح پرانتزها
اگر تاکنون کد اسکریپتهای Bash را مطالعه نموده و یا تلاش کردهاید که یک اسکریپت کوچک بنویسید و نحوه به کارگیری پرانتز، کروشه و آکولاد در اسکریپتهای Bash برایتان گیجکننده بوده این پست تا حدودی برایتان مفید واقع خواهد شد.
در ادمه با ذکر مثالهایی به توضیح مفاهیم فوق خواهیم پرداخت.
آشنایی با اصطلاحات:
- Parenthesis: () (Plural parentheses - پرانتز)
- Brackets: [] (Square brackets - کروشه)
- Curly brackets: {} (Curly braces - آکولاد)
دو پرانتز - Parenthesis در Bash Scripting
از دو پرانتز برای انجام عملیاتهای محاسباتی استفاده میشود:
((variable++))
((variable = 3))
for ((i = 0; i < VALUE; i++))
echo $((variable + 2))
نکته: در عملیاتهای محاسباتی، متغیرهایی که درون دوپرانتز قرار میگیرند نیازی ندارند که با علامت $ شروع شوند.
نکته: درصورتی که نیاز دارید مقدار درون دو پرانتز را چاپ کنید یا از مقدار آن استفاده نمایید قبل از دوپرانتز $ قرار دهید.
کروشه - Brackets در Bash Scripting
کروشه برای ساخت شرط به کار میرود:
$ VAR=2
$ if [ $VAR -eq 2 ]
> then
> echo 'yes'
> fi
yes
با توجه به نحوه استفاده از دو پرانتز میتوان مثال قبل را به شکل زیر تغییر داد:
$ ((VAR=2))
$ if [ $((VAR)) -eq 2 ]
> then
> echo 'yes'
> fi
yes
دو کروشه - Double Brackets
استفاده از دو کروشه قابلیتهای کروشه را افزایش میدهد، برای مثال میتوانید از عبارات با قاعده (Regular Expression) استفاده کنید:
if [ $VAR =~ [a-z] ]; then echo 'is'; fi --> اشتباه
if [[ $VAR =~ [a-z] ]]; then echo 'is'; fi --> صحیح
آکولاد - Curly Braces در Bash Scripting
از آکولاد یا curly braces برای محدود کردن یک متغیر استفاده میشود، برای مثال:
$ foo='stage'
$ echo $fooone --> خروجی خالی چون متغیری به این نام نداریم
$ echo ${foo}one --> نام متغیر رو از رشته ای که بهش اضافه شده جدا کرده
stageone
از curly braces میتوان برای parameter expansion (بسط و گسترش پارامتر) هم استفاده نمود، چند مثال:
ابتدا یک متغیر تعریف میکنیم:
var='abcdefg'
از کارکتر سوم دو کارکتر را برش میدهد:
echo ${var:3:2}
de
از ابتدای رشته تا حرف g چاپ میشود:
echo {$var%g}
abcdef
از ابتدای رشته تا جایی که d شروع و با هر چیزی ادامه پیدا میکند را چاپ مینماید:
echo {$var%d*}
abc
تنها به خاطر بسپارید که کروشه برای شروط، دوکروشه برای عبارات باقاعده و دو پرانتز برای محاسبات و حلقه های شبه C کاربر دارند.
بر اساس linuxconfig