شروع اسکریپت‌نویسی با Bash


در ادامه قصد داریم یک اسکریپت Bash خیلی ساده بنویسیم که این وظیفه را دارا است تا یک پیام دوخطی را روی صفحهٔ ترمینال به‌نمایش درآورد:

 #!/bin/bash
echo "HELLO"
echo "WORLD"

دستورات فوق را بااستفاده از ادیتور دلخواه خود در فایلی تحت‌عنوان script.sh ذخیره می‌سازیم؛ حال می‌بایست این فایل را اصطلاحاً Executable (قابل اجرا) کنیم و برای این منظور، دستور زیر را اجرا می‌کنیم:

$ chmod +x script.sh

البته توجه داشته باشیم که اگر این فایل را روی دسکتاپ ایجاد کرده‌ایم، ابتدا می‌بایست بااستفاده از دستور cd به مسیر دسکتاپ رفته سپس دستور فوق را اجرا کنیم. حال با تایپ کردن دستور script.sh/. و یا دستور زیر، کلمات HELLO و WORLD روی صفحهٔ ترمینال نمایش داده می‌شوند:

bash script.sh
HELLO
WORLD

همواره این نکته را به‌خاطر داشته باشیم که اگر بخواهیم به روش script.sh/. اسکرپیت خود را اجرا کنیم اما درعین‌حال فراموش کنیم که این فایل را قابل‌اجرا کنیم، با ارور زیر مواجه خواهیم شد:

$ bash: ./script.sh: Permission denied

مثالی تعاملی از اسکریپت‌نویسی با Bash 
در اسکریپتی که در ادامه خواهیم نوشت، از یوزر خواسته می‌شود تا مقداری را وارد کند سپس این مقدار در متغیری موقتی تحت‌عنوان sname ذخیره می‌شود که از این پس، ما می‌توانیم از طریق sname$ به مقدار این متغیر دسترسی پیدا کنیم. برای این منظور، فایلی تحت‌عنوان ioscript.sh در ادیتور دلخواه خود -همچون Gedit- ساخته و اسکریپت‌های زیر را داخل آن می‌نویسیم:

#!/bin/bash
# Interactive reading of variables
echo "ENTER YOUR NAME"
read sname
# Display of variable values
echo $sname

همان‌طور که پیش از این گفتیم، ابتدا باید این فایل را بااستفاده از دستور chmod +x ioscript.sh قابل‌اجرا کنیم؛ حال با اجرای دستور زیر، این اسکریپت Run (ران به‌معنی اجرا) می‌شود و جملهٔ ENTER YOUR NAME به‌معنی «نام خود را وارد کنید» درمعرض دید کاربر قرار می‌گیرد. کاربر اسمش را وارد کرده و اینتر می‌کند و می‌بینیم که مقدار وارد شده توسط کاربر نمایش داده می‌شود:

./ioscrpt.sh 
ENTER YOUR NAME
Behzad
Behzad
به خاطر داشته باشید
علامت # به‌منظور کامنت‌گذاری در اسکریپت مورد استفاده قرار می‌گیرد؛ هرکجا که از هش‌تگ استفاده شود، دستورات نوشته شده پس از آن، Comment تلقی خواهند شد.

در تفسیر اسکریپت فوق بایستی گفت که در خط اول مسیر مفسر Bash روی سیستم نوشته شده است (به‌خاطر داشته باشیم که در اسکریپت‌نویسی باید bash با حرف ابتدایی کوچک نوشته شود)؛ در خط دوم کامنتی داریم تحت‌عنوان Interactive reading of variables به‌معنی «بازخوانی تعاملی متغیرها» و سپس در خط سوم دستور "echo "ENTER YOUR NAME را نوشته‌ایم که این وظیفه را دارا است عبارت ENTER YOUR NAME را درمعرض دید کاربر قرار دهد.

در ادامه، بااستفاده از دستور read sname مقداری که کاربر در ترمینال وارد می‌کند را دریافت کرده و این مقدار را در فضایی موقتی ذخیره می‌سازیم و درنهایت پس از گذاشتن یک کامنت تحت‌عنوان Display of variable values به‌معنی «نمایش مقادیر متغیر» و نمایش متغیر sname$ با دستور echo، هرآنچه کاربر وارد کرده باشد را مجدد درمعرض دیدش قرار می‌دهیم.

دانلود فایل‌های تمرین

لیست نظرات
کاربر میهمان
دیدگاه شما چیست؟
کاربر میهمان
کاربر میهمان
کاربر میهمانمن یک کاربر مهمان هستم
۱۳۹۸/۰۳/۰۳
مرسی عالیه این مطلب خیلی به من کمک کرد
من دانشجوی کامپیوتر شاخه نتورکینگ در خارج از ایران هستم
گاها برای درک بهتر مطالب مطالعه اضافی در سایت های فارسی زبان هم دارم
مطلبتون بسیار خوب هستش و از اینکه از صفر شروع کردین جالب تره.
فقط می خواستم یه نکته کوچیک اضافه کنم:
اگر از ویندوز 10 استفاده می کنین می تونین اینترفیس ubuntu or Kali رو از طریق فروشگاه ویندوز نصب کنین
و در رابط لینوکس با تایپ دستور nano به محیط اسکریپ نویسی هدایت می شین و می تونین اسکریپ تتون رو بنویسین.
ممنون امیدوارم موفق باشین
کاربر میهمان
کاربر میهمانمن یک کاربر مهمان هستم
۱۳۹۸/۰۲/۱۱
سلام. واقعا عالی و مفید. مطالبی که در مورد شل اسکری\ت دارید هیچ جای دیگه ‍پیدا نمیشه و من واقعا وقت مطالعه سورس لاتین ندارم. فقط اگر این امکان باشه که فایل \پی دی اف این آموزش رو بذارید ممنون می شم. پی دی اف کردن صفحه با کنترل پی نتیجه ی جالبی نمیده و یه جاهایی میفته. منکه رشته ام کامپیوتر نیست ولی کارم محاسباتی هستش خیلی خیلی ازین مطالب مفید استفاده کردم و میکنم. ممنون
پویا نامی
پویا نامیدر حال آموزش وب نویسی(html,css,javascript)
۱۳۹۸/۰۱/۱۲
با تشکر.فقط یک سؤال داشتم.این زبان چه زبانی هست.یعنی بهش چی میگن و از کجا باید دستورات پیچیده‌تر رو یاد بگیریم؟