نکته مهم: این مقاله به مرور زمان، ویرایش و یا تکمیل میشود! لذا در صورتی که به مشکل تایپی، دستوری و یا مفهومی در آن برخورد کردید، خوشحال میشوم که مرا در جریان قرار داده، تا آن را ویرایش و یا تکمیل نمایم. با تشکر داریوش تصدیقی
نسخه ۱.۱
مفهوم Shell Script بسیار شبیه Batch File در محیط Windows Command Prompt میباشد.
یک مثال کاربردی!
همانطور که در مقالات قبلی، بارها ذکر کردیم، هرگاه بخواهیم یک برنامه نصب نماییم، باید قبل از آن، از دو دستور ذیل استفاده کنیم. البته برای اجرا شدن دستورات ذیل، فرض بر آن است که با کاربر root و با استفاده از یکی از دستورات su و یا sudo -i وارد سیستم شدهایم:
apt update -y apt upgrade -y
خب شاید نوشتن این دستورات، آن هم در هر مرتبه قبل از نصب، کمی سخت باشد! و شاید دوست داشته باشیم که دستوری (Shell Script File) به نام update ایجاد کنیم که با اجرا کردن آن، دو دستور فوق اجرا شوند.
برای این منظور، با استفاده از دستور touch، ابتدا یک فایل به نام update.sh ایجاد میکنیم. دقت کنید که نیازی نیست که فایل مذکور دارای پسوند sh باشد، حتی این فایل میتواند کلا فاقد پسوند باشد، ولی معمولا پسوند اینگونه فایلها را در لینوکس sh قرار میدهیم:
touch update.sh
با استفاده از دستور فوق، فایلی به نام و پسوند مورد نظر ایجاد میشود، برای این که از ایجاد شدن این فایل، اطمینان حاصل نماییم، از دستور ذیل استفاده میکنیم:
ls -lha
حال با استفاده از دستور nano، فایل مذکور را باز کرده و داخل آن را تکمیل (ویرایش) میکنیم:
nano update.sh
نکته بسیار مهم آن است که باید در ابتدای اینگونه فایلها حتما عبارت ذیل نوشته شود:
#!/bin/sh
پس از وارد کردن دستور فوق، در داخل فایل مذکور، دستورات مورد نظر خود را نوشته و با استفاده از دکمههای ترکیبی CTRL+X محیط برنامه Nano رو بسته و فایل را ذخیره میکنیم:
apt update -y apt upgrade -y
برای این که از محتوای این فایل اطمینان حاصل نماییم، از دستور ذیل استفاده میکنیم:
cat update.sh
پس از اجرای دستور فوق، باید چنین خروجی ظاهر شود:
#!/bin/sh
apt update -y
apt upgrade -y
حال باید به سیستم عامل اعلام نماییم که این فایل، یک فایل اجرایی میباشد. برای این منظور از دستور ذیل استفاده میکنیم:
chmod 755 update.sh
پس از اجرا شدن دستور فوق، به راحتی میتوانیم این فایل را اجرا نماییم:
./update.sh
دقت کنید که نوشتن /. در ابتدای دستور فوق، الزامی است!
اگر حتی نوشتن عبارت فوق هم برای ما خوشایند نباشد، میتوانیم با استفاده از دستور ذیل یک دستور به نام u و به صورت alias تعریف کرده، که با اجرای دستور u (از این پس) دستور update.sh/. اجرا شود:
alias u="./update.sh" u
پایان