فرض کنیم که قصد داریم شروع به جستجو روی سیستم برای یافتن یک فایل خاص کرده و درصورت یافتن آن فایل، یک پیام موفقیتآمیز درمعرض دید کاربر قرار گیرد؛ لازم بهذکر است اگر چنین جستجویی فقطوفقط قرار است یکبار انجام شود، مسلم است همانطور که در فصول گذشته آموزش داده شد، صرفاً با چند دستور ساده در ترمینال میتوان به چنین هدفی دست یافت اما اگر قرار باشد چنین جستجویی بارهاوبارها صورت گیرد، انجام این سرچ بااستفاده از اسکریپتنویسی و بهصورت خودکار توصیه میشود.
برای اینکه بتوانیم یکسری کامندها را بهصورت خودکار بارهاوبارها اجرا کنیم، نیاز است تا با نحوهٔ نوشتن Shell Script آشنا شویم که رایجترین نوع اینچنین اسکریپتنویسی بااستفاده از Bash است:
همانطور که در تصویر فوق مشاهده میشود، اسکریپتنویسی مزایای بسیاری در محیط لینوکس دارد که برخی از مهمترین آنها عبارتند از:
- ادغام کامندهای طولانی و تکراری صرفاً در یک کامند
- به اشتراکگذاری اسکرپیتها با سایر کاربران سیستم
- پروتوتایپسازی (ساخت نمونهٔ اولیه) سریع بدون نیاز به کامپایل شدن سورسکد
- ایجاد یکسری کامند جدید با ترکیب کردن کامندهای از پیش تعریف شده
- خودکارسازی تسکها و به حداقل رساندن ضریب خطا
تفاوت Shell و Bash در چیست؟
Shell یک نرمافزار بسیار سبک است که یک اینترفیس (رابط) در اختیار سیستمعامل قرار میدهد که از آن طریق کاربران سیستمعامل میتوانند دستورات مدنظر خود را به سیستمعامل ارجاع دهند (بهطور مثال، در سیستمعامل ویندوز Shell پیشفرض explorer.exe است و در سیستمعامل مکینتاش Finder قابلیتی مشابه را در اختیار کاربرانش قرار میدهد و در یونیکس/لینوکس هم مثلاً Gnome بخشی از محیط دسکتاپ است که چنین امکانی را فراهم میکند).
مثالهای بالا تمامی جزو شلهای گرافیکی محسوب میشوند که دربرگیرندهٔ یکسری پنجره، منو، آیکان و … هستند تا یک GUI (رابط کاربری گرافیکی) در اختیار کاربران عادی قرار دهند تا بهسادگی بتوانند با سیستمعامل ارتباط برقرار سازند؛ اما زمانیکه پای اسکریپتنویسی به میان میآید، منظور از Shell یک مفسر تحت کامندلاین است که صرفاً از طریق تایپ کردن دستورات میتوان با سیستمعامل ارتباط برقرار ساخت.
حال که با این موضوع آشنا شدیم، میتوانیم بگوییم که Bash یکی از انواع شلهای کامندلاینی است اما درعینحال یکی از محبوبترین شلها است که بهصورت پیشفرض در بسیاری از توزیعهای سیستمعامل گنو/لینوکس گنجانده شده است که بهعنوان جایگزینی برای Bourne Shell (یکی از ابتداییترین انواع شلهای یونیکس) ابداع شد و نامش مختصر واژگان Bourne Again Shell است (از نمونههای شلهای کامندلاینی در سیستمعامل ویندوز هم میتوان به cmd.exe یا همان Command Prompt و همچنین PowerShell اشاره کرد).
جالب است بدانیم که وجه تسمیهٔ Shell بسیار هم خوب انجام شده است؛ بهعبارت دیگر، معنی لغوی Shell چیزی همچون «پوسته، قشر، کالبد و صدف» است و در سیستمعاملها بهنوعی میشود گفت که Shell همچون پوستهای است که دور سیستمعامل را فرا میگیرد و این امکان را به کاربر داده تا بتواند با سیستم بهخوبی ارتباط برقرار سازد.
آنچه در ادامهٔ این فصل مورد بررسی قرار خواهد گرفت عبارت است از:
- معرفی فیچرها و قابلیتهای Bash Shell Scripting
- آشنایی با سینتکس دستورات اسکریپتی
- آشنایی با متدها و دستورات پرکاربرد
- آشنایی با نحوهٔ استفاده از دستورات شرطی (If Statements)
- آشنایی با نحوهٔ انجام محاسبات ریاضیاتی بااستفاده از زبان اسکریپتنویسی Bash