متغیرها در bash نوعی از داده های رشته ای هستند که مقداری به آنها تخصیص داده میشود. مغیرها میتوانند عدد، متن، کارکتر، نام فایل یا هر چیز دیگری باشند. متغیر چیزی جز اشاره گر به مقدار اصلی نمی باشد. شل به شما اجازه حذف تغییر و یا ایجاد متغیر ها را میدهد.
نام متغیرها
نام متغیرها میتواند از حروف انگلیسی کوچک یا بزرگ و یا اعداد و یا _ باشد. اما چیزی که در اون ها متداول هست در دنیای لینوکس اینه که شما از حروف بزرگ استفاده کنید. برای مثال:
- _ALI
- TOKEN_1
- VAR_A
- VAR_B
اما چیزهایی که نمیتونید استفاده کنید:
- ۲_VAR
- -VARIABLE
- VAR1-VAR2
- VAR_A!
اینکه شما نمیتونید از * یا ! یا – و … استفاده کنید بخاطر این هست که این نام ها کلمات خاصی هستند که برای شل معنای خاصی داره.
تعریف متغیرها
متغیرها به صورت زیر تعریف میشوند:
1 |
variable_name=variable_value |
برای مثال:
1 2 |
NAME="Arshatech Blog" VAR2=100 |
برای دسترسی به متغیر مورد نظر شما به قرار دادن یک نشان برای آن نیاز دارید که آن عبارت است از $. برای مثل به اسکریپت زیر که مقداری را به متغیر اختصاص میدهد و بعد مقدار آن را چاپ میکند توجه کنید:
1 2 3 |
#!/bin/sh NAME="Arshatech Blog" echo $NAME |
بعد از به اجرا در آوردن اسکریپت خروجی مشابه زیر را دریافت خواهید کرد:
1 |
Arshatech Blog |
متغیرهای فقط خواندنی
این متغیرها متغیرهایی هستند که فقط یک بار مقدار میگیرند و بعد از آن دیگر مقدار آن های عوض نخواهد شد.
1 2 3 4 |
#!/bin/bash NAME="Arshatech" readonly NAME NAME="Blog" |
بعد از به اجرا در آوردن اسکریپت خروجی زیر قابل مشاهده است:
1 |
test.sh: line 6: NAME: readonly variable |
استفاده از متغیرها
شما میتونید متغیرها رو unset یا پاک کنید. وقتی شما یک متغیر رو unset میکنید اگر اون رو فراخوانی کنید دیگه مقداری رو به شما برنخواهد گردوند.
1 2 3 4 |
#!/bin/bash NAME="Arshatech" unset NAME echo $NAME |
همچنین لازم میدونم که بگم متغیرهای فقط خواندنی رو نمیشه هیچ تغییری بهشون داد. در نتیجه اون ها رو نمیشه unset هم کرد.