سرفصل‌های آموزشی
آموزش لینوکس
شروع اسکریپت‌نویسی با Bash

شروع اسکریپت‌نویسی با 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، هرآنچه کاربر وارد کرده باشد را مجدد درمعرض دیدش قرار می‌دهیم.

online-support-icon