آخرین بروزرسانی 6 روز قبل

متغیر پوسته (Shell Variable) چیست؟

متغیرهای شل: صندوقچه‌های کوچک دنیای خط فرمان

سلام دوستان عزیز!

امروز می‌خوایم در مورد یه موضوع مهم در دنیای خط فرمان (command line) صحبت کنیم: متغیرهای شل. شاید اسمش یکم پیچیده به نظر برسه، ولی نگران نباشید، خیلی ساده‌تر از اون چیزیه که فکر می‌کنید. تصور کنید متغیرهای شل، مثل صندوقچه‌های کوچکی هستن که می‌تونید توشون اطلاعات مختلفی رو نگهداری کنید. این اطلاعات می‌تونه یه عدد باشه، یه متن، یا حتی یه مسیر فایل.

اصلا چرا به این صندوقچه‌ها نیاز داریم؟ خب، تصور کنید می‌خواید یه دستور رو چند بار اجرا کنید، و هر بار باید یه مقدار رو تغییر بدید. به جای اینکه هر بار مقدار رو دستی وارد کنید، می‌تونید اون رو توی یه متغیر ذخیره کنید و بعد هر وقت خواستید ازش استفاده کنید. اینجوری هم کارتون سریع‌تر می‌شه، هم احتمال اشتباه کم‌تر می‌شه.

متغیر شل چیه دقیقا؟

متغیر شل یه اسم (identifier) داره و یه مقدار (value). اسم متغیر معمولا با حروف بزرگ نوشته می‌شه (البته необязательно) و مقدار اون می‌تونه هر چیزی باشه. برای مثال، فرض کنید می‌خوایم یه متغیر به اسم `USERNAME` تعریف کنیم و مقدار اون رو بذاریم `Ali`.

چطور یه متغیر رو تعریف کنیم؟

برای تعریف یه متغیر در شل، از علامت مساوی (=) استفاده می‌کنیم. دقت کنید که قبل و بعد از علامت مساوی نباید فاصله باشه.

USERNAME=Ali

حالا متغیر `USERNAME` رو تعریف کردیم و مقدار اون رو برابر `Ali` قرار دادیم.

چطور از یه متغیر استفاده کنیم؟

برای استفاده از مقدار یه متغیر، از علامت دلار ($) قبل از اسم متغیر استفاده می‌کنیم.

echo $USERNAME
Ali

همونطور که می‌بینید، وقتی `echo $USERNAME` رو اجرا کردیم، شل مقدار متغیر `USERNAME` رو جایگزین کرد و `Ali` رو چاپ کرد.

انواع متغیرها

دو نوع اصلی متغیر در شل وجود داره:

  • متغیرهای محلی (Local Variables): این متغیرها فقط در همون اسکریپتی که تعریف شدن، قابل دسترسی هستن.
  • متغیرهای سراسری (Global Variables یا Environment Variables): این متغیرها در کل سیستم قابل دسترسی هستن.

برای اینکه یه متغیر رو به صورت سراسری تعریف کنید، از دستور `export` استفاده می‌کنیم.

export USERNAME=Ali

جدول مثال‌ها

عمل مثال توضیحات
تعریف متغیر MY_VAR="Hello World" یه متغیر به اسم `MY_VAR` تعریف می‌کنه و مقدار اون رو برابر `Hello World` قرار می‌ده.
دسترسی به مقدار متغیر echo $MY_VAR مقدار متغیر `MY_VAR` رو چاپ می‌کنه.
ترکیب متغیرها GREETING="Hello, $USERNAME!" یه متغیر جدید به اسم `GREETING` تعریف می‌کنه و مقدار اون رو با استفاده از مقدار متغیر `USERNAME` می‌سازه.
حذف متغیر unset MY_VAR متغیر `MY_VAR` رو حذف می‌کنه.

کاربردهای متغیرهای شل

متغیرهای شل کاربردهای خیلی زیادی دارن. مثلاً می‌تونید ازشون برای موارد زیر استفاده کنید:

  • ذخیره مسیر فایل‌ها و دایرکتوری‌ها
  • ذخیره نام کاربری و رمز عبور (البته این کار توصیه نمی‌شه، چون امن نیست!)
  • ذخیره نتایج دستورات
  • انجام محاسبات ریاضی
  • کنترل روند اجرای اسکریپت

خلاصه

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

موفق باشید!

کلیدواژه‌ها: متغیر شل، خط فرمان، اسکریپت شل، bash, shell, variable
سوال: متغیر شل چیه؟
جواب: متغیر شل یه اسمیه که به یه مقدار داده می‌شه. این مقدار می‌تونه یه عدد، یه متن، یا هر چیز دیگه ای باشه. مثل اینکه یه جعبه داشته باشی و یه اسمی روش بنویسی و یه چیزی توش بزاری.
سوال: چطوری یه متغیر رو تعریف کنم؟
جواب: با استفاده از علامت مساوی (=) بین اسم متغیر و مقدار اون. دقت کن که قبل و بعد از علامت مساوی نباید فاصله باشه. مثلا: NAME=John
سوال: چطوری از مقدار یه متغیر استفاده کنم؟
جواب: با استفاده از علامت دلار ($) قبل از اسم متغیر. مثلا: echo $NAME
سوال: فرق متغیرهای محلی و سراسری چیه؟
جواب: متغیرهای محلی فقط توی همون جایی که تعریف شدن قابل استفاده هستن، ولی متغیرهای سراسری توی کل سیستم قابل استفاده هستن. برا اینکه متغیر رو سراسری کنی از دستور export استفاده کن.
سوال: چه کارهایی میشه با متغیرهای شل کرد؟
جواب: خیلی کارها! میتونی مسیر فایلها رو ذخیره کنی، نتایج یه دستور رو نگهداری کنی، محاسبات ریاضی انجام بدی، و خیلی چیزهای دیگه.

به اشتراک گذاشتن این مطلب در شبکه های اجتماعی

امتیاز شما به این مطلب

امتیاز: 5 از 5 (مجموع 1 رای)

اولین نفری باشید که در مورد این مقاله نظر می دهید!

9533- V4
Terms & Conditions | Privacy Policy

techfeed.ir© 2024 All rights reserved