Shell script چیست ؟ با مزایای Shell script آشنا شوید
اگر برای شما هم سوال پیش آمده که Shell script چیست و چه کاربردی دارد باید عنوان کنیم که به طورکلی Shell script لیستی از دستورات در یک برنامه کامپیوتری است که توسط پوسته یونیکس که یک مفسر خط فرمان است اجرا میشود. یک اسکریپت پوسته معمولاً دارای comments است که مراحل آن را توصیف میکند.
عملیات مختلف انجام شده توسط اسکریپتهای پوسته عبارتند از: اجرای برنامه، دستکاری فایل و چاپ متن. Wrapper همچنین نوعی پوسته اسکریپت است که محیط برنامه را ایجاد میکند، برنامه را اجرا میکند و… .
امتیازات استفاده از Shell script چیست ؟
- Shell یک رابط برای سیستم یونیکس در اختیار شما قرار میدهد.
- دریافت ورودیها
- اجرای برنامهها بر اساس ورودیهای دریافتی
- نمایش خروجی برنامه در زمان پایان اجرای آن
به عبارتی Shell script محیطی است که میتوانیم دستورات، برنامهها و اسکریپتهای پوسته خود را در آن اجرا کنیم. لازم به ذکر است که یک پوسته دارای ورژنهای مختلفی است، همانطور که سیستم عامل ها دارای ورژنهای متفاوتی هستند. هر ورژن از پوسته مجموعهای از دستورات و عملکردهای شناخته شده خود را دارد.
انواع پوسته در Shell script چیست ؟
به طورکلی، دو نوع اصلی پوسته در یونیکس وجود دارد:
Bourne Shell
این پوسته پیش فرض نسخه 7 یونیکس و کاراکتر $ ، دستور پیشفرض پوسته بورن است. زیرشاخههای مختلف در این پوسته عبارتند از:
- پوسته Korn
- پوسته Bourne Again
- پوسته POSIX
- و…
پوسته C Shell در Shell script چیست ؟
C Shell یک پوسته یونیکس و یک پردازشگر فرمان بوده که کاراکتر % دستور پیش فرض پوسته C است. دستورات فایل را میتوان به راحتی توسط پوسته C که به عنوان اسکریپت شناخته میشود نیز خواند.
آشنایی با کاربردهای Shell Script
اجرای چندین دستور تنها با یک پوسته اسکریپت (Batch jobs)
چندین دستور که به صورت دستی در یک رابط خط فرمان وارد می شوند را میتوان به طور خودکار با استفاده از یک پوسته اسکریپت اجرا کرد. این کار را میتوان بدون نیاز کاربر به اجرای هر فرمان به طور جداگانه انجام داد.
برنامه نویسی (Programming)
ویژگیهای زیادی در اسکریپتهای پوسته مدرن وجود دارد که فقط در زبانهای برنامه نویسی پیچیده مانند آرایهها، متغیرها، نظرات و… یافت میشوند. بسیاری از برنامههای کاربردی پیچیده را میتوان با استفاده از این ویژگیها در اسکریپتهای پوسته نوشت. مشکلی که در این باره وجود دارد، این است که زبانهای اسکریپت پوسته از کلاسها، رشتهها و… پشتیبانی نمیکنند.
Generalisation در Shell script چیست ؟
استفاده از حلقهها، متغیرها و… برای انجام چندین کار در اسکریپت پوسته بسیار انعطافپذیرتر هستند. نمونهای از این اسکریپت پوسته یونیکس معروف به bash است که تصاویر jpg را به تصاویر png تبدیل میکند.
میانبر یا Shortcuts
میانبر یا Shortcuts توسط یک اسکریپت پوسته برای یک فرمان سیستم وجود دارد که در آن گزینههای فرمان، تنظیمات محیط یا پردازش پست اعمال میشود. این همچنان به اسکریپت میانبر اجازه میدهد تا به عنوان یک فرمان یونیکس عمل کند.
مزایای استفاده از Shell Script چیست ؟
Commands و syntax همان است که در خط فرمان وارد شده است. به همین دلیل، نیازی به تغییر نیست.
نوشتن کد در پوسته اسکریپت بسیار سریعتر از سایر زبان های برنامه نویسی است. همچنین به این معنی است که ایجاد برنامه آسان تر است و فایل های مورد نیاز را می توان به راحتی انتخاب کرد.
اسکریپت Shell همچنین می تواند provide linkage برای برنامه های موجود استفاده شود.
اسکریپت نویسی پوسته می تواند توسط کاربرانی که متخصص نیستند برای اصلاح و تنظیم رفتار برنامه های خود بر اساس نیازهای خود استفاده کنند.
کاربرد متغیرهای Shell Script چیست ؟
در این قسمت، نحوه استفاده از متغیرهای شل در یونیکس را یاد خواهیم گرفت. متغیر یک رشته کاراکتری است که مقداری را به آن اختصاص می دهیم. مقدار اختصاص داده شده می تواند یک عدد، متن، نام فایل، دستگاه یا هر نوع داده دیگری باشد.
یک متغیر چیزی بیش از یک اشاره گر به داده های واقعی نیست. پوسته شما را قادر می سازد تا متغیرها را ایجاد، اختصاص دهید و حذف کنید.
نام های متغیر
نام یک متغیر می تواند فقط شامل حروف (a تا z یا A تا Z)، اعداد (0 تا 9) یا کاراکتر (_) باشد.
طبق قرارداد، متغیرهای shell یونیکس نام خود را با حروف بزرگ دارند.
مثالهای زیر نامهای معتبر متغیر − هستند
_ALI
TOKEN_A
VAR_1
VAR_2
در زیر نمونه هایی از نام متغیرهای نامعتبر آورده شده است.
2_VAR
-VARIABLE
VAR1-VAR2
VAR_A!
دلیل اینکه نمی توانید از کاراکترهای دیگری مانند !، * یا – استفاده کنید این است که این کاراکترها معنای خاصی برای shell دارند.
نحوهی تعریف متغیرها در Shell script چیست ؟
متغیرها به صورت زیر تعریف می شوند.
variable_name=variable_value
به عنوان مثال
NAME="Araz Cloud"
مثال بالا متغیر NAME را تعریف می کند و مقدار “Araz Cloud” را به آن اختصاص می دهد. متغیرهای این نوع را متغیرهای اسکالر می نامند. یک متغیر اسکالر می تواند تنها یک مقدار را در یک زمان نگه دارد.
شل به شما امکان می دهد هر مقداری را که می خواهید در یک متغیر ذخیره کنید. به عنوان مثال
VAR1="Araz Cloud" VAR2=100
Accessing Values
برای دسترسی به مقدار ذخیره شده در یک متغیر، پیشوند نام آن را با علامت دلار ($) – قرار دهید
به عنوان مثال، اسکریپت زیر به مقدار متغیر تعریف شده NAME دسترسی پیدا می کند و آن را در STDOUT – چاپ می کند
#!/bin/sh NAME="Araz cloud" echo $NAME
اسکریپت بالا مقدار زیر را چاپ می کند
Araz Cloud
Read-only Variables
شل راهی برای علامت گذاری متغیرها Read-only به عنوان با استفاده از دستور Read-only ارائه می دهد. بعد از اینکه یک متغیر Read-only علامت گذاری شد، مقدار آن را نمی توان تغییر داد.
به عنوان مثال، اسکریپت زیر هنگام تلاش برای تغییر مقدار NAME – خطایی ایجاد می کند
#!/bin/sh NAME="Araz Cloud" readonly NAME echo $NAME
اسکریپت بالا نتیجه زیر را ایجاد می کند
/bin/sh: NAME: This variable is read only.
Unsetting Variables
در زیر دستوری برای حذف یک متغیر تعریف شده با استفاده از دستور unset
unset variable_name
دستور بالا مقدار یک متغیر تعریف شده را از حالت defined خارج می کند. در اینجا یک مثال ساده است که نشان می دهد دستور unset چگونه کار می کند .
#!/bin/sh NAME="Araz Cloud" unset NAME echo $NAME
مثال بالا چیزی را چاپ نمی کند
انواع متغیرهای Shell Script چیست ؟
هنگامی که یک script در حال اجرا است، سه نوع متغیر اصلی وجود دارد
- متغیرهای محلی
- متغیرهای محیطی
- متغیرهای shell
PowerShell یکی دیگر از زبانهای اسکریپت نویسی است که یادگیری در مورد آن، برای شما بسیار مفید خواهد بود. به عبارتی مدیران سیستم، میانبرها و روشهایی را که باعث صرفه جویی در زمان می شوند را دوست دارند. که یکی از مهمترین و کاربردیترین آنها PowerShell است اگر میخواهید در مورد نحوهی اجرای اسکریپت در پاورشل بیشتر بدانید، به وبلاگ ما مراجعه کنید.