اسکریپت نویسی شل لینوکس برای وبمسترها – قسمت ۱

 

اسکریپت نویسی شل لینوکس برای وبمسترها – قسمت ۱

در قسمت قبل با ویرایشگر vi و اولین مراحل نوشتن یک اسکریپت آشنا شدیم,

در این مرحله قصد داریم ایجاد متغیر, ورودی گرفتن برای اسکریپت و چاپ متغیر در خروجی را توضیح دهیم.

اسکریپت نویسی شل لینوکس - نوین هاست - قسمت اول

تعریف متغیر:

برخلاف بسیاری از زبان های برنامه نویسی, نیازی نیست در اسکریپت نویسی لینوکس نوع متغیر را تعیین کنید.

کافیست در اسکریپت بنویسید var1=value1 تا متغیری با نام var1 و مقدار value1   ایجاد شود.

اگر میخواهید خروجی یک دستور در متغیر قرار گیرد, به این صورت عمل کنید: var=$(command) با اینکار خروجی دستور command  در متغیر var قرار میگیرد.

به طور مثال دستور

ipadd=$(ifconfig | grep ‘inet’| grep -v ‘127.0.0.1’| grep -v ‘inet6’ | sed ‘s/  / /g’ | tr -s ‘ ‘ | cut -d ‘ ‘ -f 3)

آی پی آدرس سیستم لینوکسی را در متغیر ipadd قرار میدهد.(در سرور redhat آزمایش شده).

دریافت ورودی از کاربر:

دریافت ورودی به دو صورت انجام میگیرد:

دریافت ورودی از کاربر قبل اجرای برنامه:

  • شما میتوانید مقادیری را به عنوان پارامتر و آپشن به برنامه تحویل دهید. وقتی در خط فرمان مینویسید command val1 val2
  • مقادیر val1 و val2 را به اسکریپت command تحویل داده اید.
  • برای خواندن این مقادیر در اسکریپت کافیست از place holder های $۰,$۱,$۲,$۳ . . . . استفاده نمایید.

به این مثال توجه کنید:

[me@linuxbox me]$ some_program word1 word2 word3

  • $۰ = “some_program”
  • $۱ = “word1”
  • $۲ = “word2”
  • $۳ = “word3”

 میبینید که placeholder    $۰ نام برنامه, و $۱ اولین آرگومان را در بر گرفته است, برای آرگومان های بعدی به مراتب از جا نگهدار های $۲ , $۳ و . . .   استفاده میکنیم.(در قسمت های آینده بررسی این مقادیر با استفاده از دستورات شرطی توضیح داده خواهد شد.)

اگر میخواهید بدانید چه تعداد آرگومان به اسکریپت تحویل شده (در مثال قبلی سه تا) میتوانید از متغیر $# استفاده کنید.

اگر در مثال بالا محتوی اسکریپت some_program  به صورت زیر باشد:

اسکریپت نویسی شل لینوکس - نوین هاست

در صورتی که برنامه را با دستور bash some_program word1 word2 word3 اجرا کنیم, خروجی به صورت

some_program

word1

word2

word3

۳

خواهد بود, سطر اول نام برنامه, سطر دوم ارگومان اول , سطر چهارم آرگومان دوم و سطر آخر تعداد آرگومان ها را نشان میدهد.(در قسمت دستورات حلقه از $# برای گرفتن همه آرگومان ها استفاده خواهیم کرد.)

و در صورتی که به صورت bash some_program word1 word2 اجرا کنیم, یعنی به جای سه آرگومان دو آرگومان ارسال کنیم, خروجی به صورت

some_program

word1

word2

۲

خواهد بود. مشاهده میکنید که جای word3 خالی است و تعداد آرگومان ها به ۲ تغییر کرده است.

دریافت ورودی از کاربر در حال اجرای برنامه:

بعضی اوقات لازم است در حین اجرای برنامه مقداری را از کاربر دریافت کنیم یا سوالی از کاربر بپرسیم:

برای اینکار از دستور read var استفاده میکنیم, اینکار باعث میشود مقدار وارد شده توسط کاربر در متغیری به نام var  ذخیره گردد, متغیر var  را میتوانید با هر نام دل خواهی که از قوانین نام گذاری متغیر های پیروی کند ایجاد کنید.(مهم ترین قوانین: در نام فاصله نباشد, نام متغیر با عدد شروع نشود(

به این مثال توجه کنید:

echo -n “Enter MAC Address > “

read hwa

echo “Mac Address: “$hwa

اسکریپت بالا هنگام اجرا شدن مک آدرس را از کاربر میخواهد و کاربر با وارد کردن مقدار مورد نظر و فشردن اینتر مقدار را تحویل میدهد, این مقدار در متغیر hwa ذخیره شده و سپس توسط دستور echo در خروجی نمایش داده میشود.

برای چاپ متغیر در خروجی از دستور

Echo “someword “$var

استفاده کنید, با اینکار در خروجی مقدار متغیر var   پس از some word چاپ میشود, در صورتی که میخواهید فقط مقدار متغیر چاپ شود کافیست بنویسید echo $var.

نظر

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *