روش اسکریپت نویسی شل در لینوکس

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

سیستم‌ عامل لینوکس، از هزاران دستور تشکیل شده است. در بسیاری از مواقع، نیاز داریم، ترکیبی از دستورات، با ترتیب مورد نظر را، اجرا نماییم. اسکریپت نویسی شل، به منظور انجام دسته‌ای از دستورها، با ترتیب و شرایط خاص در لینوکس می‌باشد. اسکریپت شل یک فایل متنی اجرایی شامل دستورات، پارامترها و کامنت‌ها می‌باشد. دستورات در اسکریپت‌ها،خط به خط توسط مفسر شل، اجرا می‌گردد. در سیستم عامل ‌DOS به این فایل‌ها Batch file یا فایل‌های دسته‌ای گفته می‌شد. در کامپیوترهای مین‌فریم IBM با سیستم عامل VM به این نوع فایل‌ها EXEC می‌گفتند. برای توضیح بیشتر در باره اسکریپت نویسی شل در لینوکس با ما همراه باشید.

شل یا پوسته

شل یا پوسته، برنامه‌ای است که دستوراتی که از طریق کی‌برد، توسط کاربر وارد می‌شود را به سیستم‌ عامل انتقال می‌دهد. با برنامه‌ی شل، ما می‌توانیم دستورات و برنامه‌ها را اجرا نموده و یا برای نحوه‌ی اجرای آن‌ها اسکریپت نویسی نماییم.

انواع شل

برای انواع شل در لینوکس، آن‌ها را می‌توان به دو دسته تقسیم نمود: اول گروه Bourne Shell با نشانه‌ی دستور $ و دوم C shell با نشانه‌ی دستور %.

گروه Bourne shell

  •  Bourne Shel
  • Bourne Again Shell
  • Korn Shell
  • Posix Shell

گروه C Shell

  • C shell
  • TENEX/TOPS C Shell

چگونه یک اسکریپت شل را بنویسیم

اسکریپت‌نویسی در شل، یک زبان برنامه‌نویسی با نگارش مخصوص به خود می‌باشد. در ادامه‌ی مطلب مثال‌ها بر روی شل bash اجرا خواهد شد. اسکریپتی که با هر یکی از انواع شل نوشته می‌شود لزوما با نگارش‌های دیگر شل اجرا نخواهد شد. برای ایجاد یک اسکریپت شل مراحل زیر را انجام می‌دهیم:

در ابتدا توسط یک ویرایشگر مثل ویرایشگر vi ، یک فایل متنی را ایجاد کرده و کدنویسی مورد نظر را انجام می دهیم. در اول هر فایل اسکریپت باید خط bin/bash/!# را اضافه نماییم. در صورتی که از شل‌های غیر از bash استفاده کنیم، نام آن شل را بجای bash، استفاده می‌کنیم. برای اجرای اسکریپت‌های شل، به دو صورت می‌توان عمل نمود.

روش اول اجرای فایل توسط دستور bash می‌باشد.

در روش دوم مد یا حالت فایل را به فایل اجرایی تغییر می‌دهیم و مستقیما فایل را اجرا می کنیم.

برای کامنت گذاری در اسکریپت‌های شل از # استفاده می‌نماییم. هر خطی که با کاراکتر # شروع شود اجرا نخواهد شد و نادیده گرفته می‌شود. از هر قسمتی از خط نیز که از کاراکتر # استفاده نماییم، از آن قسمت به بعد برای مفسر اسکریپت، به عنوان کامنت فرض شده و اجرا نخواهد گردید.

برای شروع یک اسکریپت ساده را می‌نویسیم:

بعد از ذخیره کردن فایل اسکریپت و اجرا نمودن آن خروجی زیر مشاهده می‌گردد:

برای اجرای بیش از یک دستور در هر خط از سمی‌کالن استفاده می‌گردد.

متغیرها

متغیرها در شل یا متغیرهای محیطی هستند که به طور پیش‌فرض توسط شل مقدارگذاری شده‌اند و یا به توسط کاربر تعریف می‌شوند.

متغیرهای محیطی یا Environment Variables

متغیرهای محیطی، متغیرهایی هستند که حاوی اطلاعات مربوط به نشست حاضر کاربر و اطلاعات اختصاصی مربوط به شل می‌باشند. مثلا متغیر HOME مسیر پیش‌فرض دایرکتوری home کاربر جاری را نشان میدهد:

شل لینوکس دارای متغیرهای محیطی می‌باشد که مقادیر مربوط به تنظیمات و مشخصات سیستم عامل را در آن ذخیره شده است.

متغیرهای محلی

برای تعریف یک متغیر و اختصاص مقدار به‌آن، به صورت زیر عمل می‌کنیم.

این اسکریپت را در فایل my-script.sh ذخیره می‌کنیم. با اجرای my-script.sh نتیجه‌ی اجرا، به صورت زیر می‌باشد.

توجه داشته باشید که، برای نام‌گذاری متغیرها در شل، حروف بزرگ و کوچک با هم فرق دارند و اصطلاحا، case sensitive می‌باشد.

مقاسیه‌ در متن و اعداد

جدول زیر علامت‌های مربوط به مقایسه بین حروف و اعداد نمایش داده شده است که از آن می‌توان در دستورات شرطی استفاده نمود:

شرحمقایسه‌ی متنمقایسه‌ی عدد
کمتر از<lt
بیشتر از>gt
مساوی=eq
نامساوی=!ne
کوچکتر مساویle
بزرگتر مساویge

دستورات شرطی

نحوه‌ی نگارش دستورات حاوی شرط به ضورت زیر می‌باشد:

در اسکریپت فوق، در مسیر ذکر شده، در صورتیکه دایرکتوری test وجود داشته باشد یا نداشته باشد آن را، اعلام میکند .

حلقه‌ی for

وقتی بخواهیم مجموعه‌ای از دستورات، با تعداد مشخصی، تکرار شوند از حلقه‌ی for ، استفاده می‌نماییم.

در مثال بالا، تمام فایل‌ها و دایرکتوری‌های مسیر ذکر شده نمایش داده می‌شود.

دیدگاهتان را بنویسید