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