Bash Scripting – توضیح پرانتزها

اگر تاکنون کد اسکریپت‌های Bash را مطالعه نموده و یا تلاش کرده‌اید که یک اسکریپت کوچک بنویسید و نحوه به کارگیری پرانتز، براکت و گیومه در اسکریپت‌های Bash برایتان گیج‌کننده بوده این پست تا حدودی برایتان مفید واقع خواهد شد.

در ادمه با ذکر مثال‌هایی به توضیح مفاهیم فوق خواهیم پرداخت.

آشنایی با اصطلاحات:

Parenthesis: () (plural parentheses – پرانتز)
Brackets: [] (square brackets – براکت)
Braces: {} (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 –> صحیح

گیومه – 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

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

تشخیص ربات * Time limit is exhausted. Please reload CAPTCHA.