


آموزش Shell script در لینوکس
Shell script در لینوکس یکی از امکانات پر کاربرد برای برنامه نویسان لینوکسی می باشد. در این بخش به آموزش استفاده از این رابط کاربری ویژه می پردازیم.
سیستم عامل لینوکس، شامل دستورات زیادی می باشد که در بسیاری از مواقع، نیاز است ترکیبی از دستورات را برای مدیریت سرورها و سیستم های پردازشی اجرا نمود. به همین منظور اسکریپت نویسی شل یا Shell script، برای اجرا مجموعه ای از دستورها، با ترتیب و شرایط خاص در سیستم عامل لینوکس میباشد.
در ادامه مقاله قصد داریم توضیحات مختصری درباره اسکریپت نویسی شل به شما عزیزان ارائه دهیم؛ پس با ما همراه باشید.
شِل یا shell چیست؟
برنامه shell یک رابط کاربری ویژه ای است که برای استفاده از خدمات و امکانات سیستم عامل لینوکس در اختیار کاربران قرار می دهد. در واقع اسکریپت نویسی در محیط شل دستورات قابل فهم از کاربر گرفته آن را بر اساس هسته سیستم عامل اجرا می کند. محیط shell با ورود کاربر یا راه اندازی ترمینال شروع می شود.
انواع شل
شل در سیستم عامل لینوکس در اقسام و نام های گوناگون می باشند که گروه اول Bourne Shell با علامت $ و گروه دوم C shell با نشانهی دستور % در محیط شل وجود دارد که به تفکیک زیر می باشند:
گروه Bourne shell
- Bourne Shell
- Bourne Again Shell
- Korn Shell
- Posix Shell
گروه C Shell
- C shell
- TENEX/TOPS C Shell
نحوه اسکریپت نویسی شل در لینوکس
در محیط Shell script نحوه اسکریپت نویسی مشابه یک زبان برنامهنویسی با قواعد مخصوص به خود عمل می کند. در ادامهی مطلب چند مثال بر روی شل bash اجرا خواهیم کرد.
در ابتدا به وسیله یک ویرایشگر مانند ویرایشگر vi، کدنویسی خود را ایجاد میکنیم. در نظر داشته باشید که در اول هر فایل اسکریپت باید خط bin/bash/!# را اضافه کنید. اگر از شل های دیگر استفاده می کنید نام آن شل را به جای bash جایگذاری کنید. برای اجرای اسکریپتهای شل، می توان به دو روش زیر انجام داد:
روش اول: اجرای فایل با استفاده از دستور bash میباشد.
admin@example:~$ bash my-script.sh
روش دوم: می توان مد یا حالت فایل را به فایل اجرایی تغییر داد و به صورت مستقیم فایل را اجرا کنید.
admin@example:~$ chmod a+rx my-script.sh
admin@example:~$ ./my-script.sh
برای کامنت گذاری یا توضیحات دستورات خود در Shell script می توانید از علامت # در ابتدای خط استفاده نمایید.
# This line is shell script comment
cp filename lastname
برای شروع می توانید اسکریپت ساده زیر امتحان کنید:
#!/bin/bash
echo "hello word
پس از ذخیره فایل اسکریپت و اجرا نمودن آن خروجی زیر را مشاهده می کنید:
admin@example:~$ ./my-script.sh
hello word!
admin@example:~$
اگر تمایل داشتید چند دستور را در یک خط بنویسید در انتهای دستور از علامت سمیکالن (;) استفاده کنید.
echo hello word! ; echo hello again
متغیرهای محیطی
متغیر محیطی یا Environment Variables، متغیرهایی از پیش تعریف شده هستند که حاوی اطلاعات مربوط به مسیر حاضر کاربر و یا مقدار خاصی میباشند. برای مثال متغیر HOME مسیر پیشفرض دایرکتوری home کاربر جاری را نشان میدهد:
admin@example:~$ echo $HOME
/home/admin
admin@example:~$
مقاسیه در متن و اعداد
جدول زیر علامتهای مربوط به مقایسه بین حروف و اعداد نمایش داده شده است که از آن میتوان در دستورات شرطی استفاده نمود:
دستورات شرطی
نحوهی نگارش دستورات حاوی شرط به ضورت زیر میباشد:
#!/bin/bash
dir="/home/admin/test"
if [ -d $dir ]; then
echo "Directory exists"
else
echo "Directory does not exist"
در اسکریپت فوق، با کمک دستور شرطی if می توان تشخیص داد در مسیر ذکر شده، دایرکتوری test وجود دارد یا خیر.
حلقهی for
در بعضی مواقع نیاز است مجموعهای از دستورات، با تعداد مشخصی تکرار شوند که به راحتی می توان با کمک دستور حلقهی for، استفاده کرد.
for i in {2 … 10}
do
echo "output: $i"
done
در مثال بالا، تمام اعداد 2 تا 10 به ترتیب output: 2، output: 3 و ... نمایش داده میشود.