- 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.
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اجرا کنید و تفاوت را حس کنید.
در فصلهای بعدی با حلقهها، توابع و ساختارهای پیشرفتهتر کار خواهیم کرد تا بتوانید اسکریپتهای قویتری برای کارهای روزمرهٔ خود در لینوکس بسازید.