Files
khorasan-doc/docs/lesson3-6.md
T
nearology 99fb7f0e82 Add sitemap and styles for Persian font integration
- Created a new sitemap.xml file for better SEO.
- Added a compressed version of the sitemap as sitemap.xml.gz.
- Introduced extra.css for custom styles, including Persian font support (IRANSansX).
- Defined font-face rules for regular and bold styles of IRANSansX.
- Implemented various text styles and layout adjustments for better readability.
- Enhanced Mermaid diagram styles to support Persian text rendering.
2026-04-28 15:27:18 +03:30

4.3 KiB

درسنامه ۳-۶: مجوز اجرا و اجرای اسکریپت

در این درس یاد می‌گیریم چگونه به اسکریپت مجوز اجرایی بدهیم و آن را مثل یک برنامه اجرا کنیم. همچنین تفاوت اجرای اسکریپت با bash و اجرای مستقیم آن را می‌بینیم.

بررسی مجوزهای یک فایل

برای دیدن مجوزهای فایل از ls -l استفاده می‌کنیم:

ls -l hello.sh

خروجی نمونه:

-rw-r--r-- 1 user user  50 Dec  1 10:00 hello.sh

اگر در ستون اول کنار حروف r و w حرف x (execute) دیده نشود، یعنی فایل هنوز «اجرایی» نیست.

دادن مجوز اجرایی با chmod

برای اینکه سیستم بداند این فایل را می‌توان به‌عنوان برنامه اجرا کرد، باید به آن مجوز اجرا بدهیم:

chmod +x hello.sh

حالا اگر دوباره ls -l بگیریم:

ls -l hello.sh

چیزی شبیه این می‌بینیم:

-rwxr-xr-x 1 user user  50 Dec  1 10:05 hello.sh

حرف x نشان می‌دهد که فایل الان قابل اجراست.

اجرای مستقیم اسکریپت (./script.sh)

بعد از دادن مجوز اجرا، می‌توانیم فایل را مثل یک برنامه اجرا کنیم:

./hello.sh

علامت ./ یعنی «این فایل را از دایرکتوری فعلی اجرا کن». اگر فقط hello.sh را بنویسید، سیستم معمولا آن را پیدا نمی‌کند؛ چون دایرکتوری فعلی به طور پیش‌فرض در متغیر PATH نیست.

اجرای اسکریپت با bash

روش دیگر، همان روشی است که قبلا استفاده کردیم:

bash hello.sh

تفاوت‌ها:

  • در روش bash hello.sh حتی اگر مجوز اجرا نداشته باشید، معمولا اسکریپت اجرا می‌شود؛ چون شما به bash می‌گویید این فایل متنی را بخوان و اجرا کن.
  • در روش ./hello.sh سیستم به مجوز x روی خود فایل نگاه می‌کند؛ اگر نباشد، خطای «Permission denied» می‌گیرید.

در عمل هر دو روش مفیدند؛ اما برای اسکریپت‌هایی که می‌خواهید مثل یک برنامهٔ مستقل استفاده کنید، دادن مجوز اجرا و استفاده از ./script.sh رایج‌تر است.

جمع‌بندی فصل تا این‌جا

در این فصل (شروع برنامه‌نویسی Bash) تا این درس یاد گرفتید که:

  • Bash شل رایج لینوکس است و اسکریپت Bash فایلی متنی حاوی مجموعه‌ای از دستورات است.
  • می‌توانید اولین اسکریپت خود را با #!/bin/bash و چند دستور ساده بسازید و با bash script.sh اجرا کنید.
  • متغیرها به شما اجازه می‌دهند مقادیر را با نام ذخیره کنید و در خروجی استفاده کنید.
  • با read و آرگومان‌های خط فرمان ($1, $2, ...) می‌توانید از کاربر ورودی بگیرید.
  • با ساختار if و عملگرهای مقایسه‌ای، اسکریپت‌های تعاملی و هوشمندتر بسازید.
  • با chmod +x به اسکریپت مجوز اجرا می‌دهید و آن را با ./script.sh به‌عنوان یک برنامه اجرا می‌کنید.

تمرین کوتاه

  • اسکریپتی بنویسید که:
    • ابتدا نام کاربر را (با آرگومان یا read) بگیرد.
    • اگر نام خالی بود، پیام خطا بدهد و خارج شود.
    • در غیر این صورت، یک پیام خوشامدگویی چاپ کند.
  • به اسکریپت مجوز اجرا بدهید و آن را هم با bash script.sh و هم با ./script.sh اجرا کنید و تفاوت را حس کنید.

در فصل‌های بعدی با حلقه‌ها، توابع و ساختارهای پیشرفته‌تر کار خواهیم کرد تا بتوانید اسکریپت‌های قوی‌تری برای کارهای روزمرهٔ خود در لینوکس بسازید.