لینوکسی بشیم: اسکریپت نویسی در bash

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

تو این مطلب فرض بر اینه که با لینوکس و بش تا حدودی آشنایی دارید.‌ اگه خواستید خوبه مطالب قبلی رو بخونید تا همه با هم تو یه قایق باشیم.

حالا اسکریپت چیه؟ یه فایل هست که ما توش دستوراتی رو می‌نویسیم و اجراش می‌کنیم. دستورات همون دستورایی هستن که تو خط فرمان نوشته میشن. دلیلش اینه که میخوایم یه فایل داشته باشیم که همه‌ی دستورای یه کار خاص رو انجام بده. فرض کنید من میخوام یه سری فایل لاگ رو بخونم و یه بلایی سرشون بیارم و تو یه فایل جدید ذخیره کنم. خب چندین و چند دستور مختلف نیازه برای این کار و من حال ندارم هر دفعه این همه دستور رو تو بش بزنم. تازه ممکنه هر دفعه یه چیزی رو جا بندازم یا دستوری رو اشتباه بزنم. برای این میام همه رو میذارم تو یه فایل و اجراش میکنم. این جوری اگه ایرادی هم باشه یه بار برای همیشه حلش میکنم و تو فایل اعمال می‌کنم.

بریم یه اسکریپت بنویسیم. من از vscode استفاده میکنم که یه ویرایشگر متن هست. شما میتونید از ویرایشگرهای خط فرمان مثل vim استفاده کنید یا هر ویرایشگر گرافیکی دیگه. اینو قبلا هم دیده بودیم اون اولا که تو یه فایل چن تا دستور نوشته بودیم. در واقع اون یه اسکریپت کوچولو موچولو بود. الان اسکریپت من این شکلیه:

از اون قبلیه هم کوچولو تره! تو بش اجراش میکنم:

قبلا هم گفتم که وقتی این طوری میکنیم یه بش جدید باز میشه و تو اون دستورا رو اجرا میکنه. برای اینکه هر دفعه bash رو ننویسیم میایم اول فایل یه چیزی به نام shebang مینویسیم:

این یعنی این فایل رو باید با اون برنامه که مسیرش داده شده اجرا شه. اون مسیر هم جایی هست که فایل اجرایی بش وجود داره یعنی:

/bin/bash

قبلشم یه دونه # و ! رو یادمون نره. حالا یه کار دیگه هم باید بکنیم و اونم اینه که به فایل خاصیت اجرایی بدیم. برای این کار از دستور chmod استفاده میکنیم. این دستور ویژگی‌های فایل‌ها رو تغییر میده. بعدا ان شاء الله بیشتر آشنا میشیم باهاش:

تو این دستور اسم فایل رو دادم و قبلش x+ نوشتم. یعنی ویژگی x رو برای فایل فعال کن. حالا ویژگی x چیه؟ x به معنی execute هست؛ یعنی اجرا. با این کار فایلمون قابلیت اجرایی پیدا میکنه. حالا تو خط فرمان فایل رو اجرا میکنم:

خروجیش مثل قبله. دقت کنید /. رو حتما بذارید. اگه نذارید نمیفهمه منظورتون همین پوشه فعلی هست. دفعات بعدی که این فایل رو تغییر دادیم دیگه با chmod کاری نداریم؛ چون فایلمون خاصیت اجرایی داره و نیازی نیست بهش این خاصیت رو دوباره بدیم. برای تمرین چن تا از دستورای قسمت‌های قبلی رو تو اسکریپت بنویسید و اجرا کنید.

بیاید یه جمع‌بندی کنیم. وقتی میخوایم یه اسکریپت بنویسیم اول یه فایل درست میکنیم و اولش shebang می‌نویسیم. بعد هر چی دستور بود توی فایل می‌نویسیم. آخرش هم با chmod بهش خاصیت اجرایی میدیم و اجراش می‌کنیم.

این کلیتی از اسکریپت‌نویسی در بش بود. دفعه بعد ان شاء الله از توابع بش استفاده می‌کنیم و یه کمی بیشتر اسکریپت‌ها رو میشناسیم. امیدوارم این مطلب براتون مفید بوده باشه. اگر نظری یا سوالی دارید این پایین بگید.

قسمت قبلی

قسمت بعدی