درک پیشرفته متغیرها در Bash – بخش ۱۰ پرینت


## 🔍 درک پیشرفته متغیرها در Bash – بخش ۱۰

### 📋 ویژگی‌های متغیرها: readonly و export

* می‌توانید متغیری را **تنها خواندنی (immutable)** تعریف کنید تا در طول اجرای اسکریپت تغییر نکند:

```bash
declare -r name="Tecmint.com"
```

هرگونه تلاش برای بازتعریف متغیر خطا خواهد داد ([tecmint.com][1]).

* برای در دسترس قرار دادن متغیر در **محیط فرزند** (child processes)، باید آن را **export** کنید:

```bash
declare -x variable="Constant_Value"
```

و برای ترکیب readonly با export:

```bash
declare -rx variable="Constant_Value"
```

در این حالت مقدار درون اسکریپت ثابت است و به محیط‌های فرزند نیز منتقل می‌شود ([tecmint.com][2]).

---

### 🧬 تفاوت متغیرها و متغیرهای محیطی (Environment Variables)

* متغیرهایی که export می‌شوند به‌صورت اشیاء **محیطی** شناخته شده و در فرآیندهای زیرشاخه نیز قابل دسترسی‌اند.
* اگر readonly و export با هم مشخص شوند، مقدار متغیر در محیط فرزند قابل تغییر نیست .

---

### 🛠 سوئیچ‌های مهم `declare` در Bash

| سوئیچ | عملکرد |
| ----- | ---------------------------------------------------------------------------------------- |
| `-a` | تعریف آرایه |
| `-f` | نمایش تابع و تعریف آن |
| `-F` | نمایش فقط نام توابع |
| `-r` | متغیر را تنها‌خواندنی می‌کند |
| `-x` | متغیر را export می‌کند (تبدیل به محیطی می‌شود) |
| `-i` | نوع integer به متغیر اختصاص می‌دهد ([tecmint.com][1], [LinkedIn][3], [fishshell.com][4]) |

---

## ✅ جمع‌بندی

در این بخش با اهمیت طبقه‌بندی متغیرها آشنا شدیم:

* `declare -r`: جلوگیری از تغییر متغیر
* `declare -x`: امکان دسترسی به متغیر در محیط‌های فرزند
* ترکیب `-r -x`: ایجاد متغیر ایمن و محیطی
* دیگر سوئیچ‌ها مانند `-i`, `-a` و `-f` امکان تعریف نوع و آرایه را فراهم می‌کنند

استفاده از این ویژگی‌ها، کنترل بیشتری روی **scope**, **type safety** و **محدودیت تغییرات ناخواسته** در متغیرها برای اسکریپت‌های Bash بالاخص در محیط‌های مدیریت سیستم دارد.

 


آیا این پاسخ به شما کمک کرد؟

  • 0
« برگشت