Bash Scripting Linux (دستورات و شناسهها)
Bash Scripting Linux (دستورات و شناسهها)
BASH دستورات را از ورودی (که میتواند ترمینال یا یک فایل باشد) میخواند.
با هر سطری که میخواند به عنوان یک دستور رفتار میکند.
BASH هر سطر را از محل هر کاراکتر فضای سفید (فاصله و Tab) به کلمهها تقسیم میکند.
اولین کلمهای که پیدا میکند نام دستوری است که باید اجرا شود.
تمام کلمات باقیمانده، شناسه برای دستور تلقی میگردند (گزینهها، نام فایلها و غیره)
فرض کنیم شما در یک دایرکتوری خالی هستید.
(اگر میخواهید این کد را امتحان کنید میتوانید دایرکتوری به نام test را با اجرای mkdir test ; cd test ایجاد کنید و داخل آن بروید).
touch یک برنامه کاربردی است که زمان آخرین ویرایش یک فایل معین را به زمان حال تغییر میدهد.
اگر فایل نامبرده در حال حاضر موجود نباشد، به سادگی آن را، به عنوان یک فایل جدید خالی ایجاد میکند .
در این مثال، ما سه شناسه به آن دادهایم touch برای هر یک از آنها یک فایل ایجاد میکند.
فرمان ls سه فایل ایجاد شده را به ما نشان میدهد.
rm ابزاری برای حذف فایلهایی میباشد که به عنوان شناسه به آن داده شدهاند.
* یک جانشین (glob) میباشد و در اینجا در اصل به معنای تمام فایلهای موجود در دایرکتوری جاری میباشد.
بعدا بیشتر درباره جانشینها (globs) خواهید خواند.
حالا توجه نمودید که بین s و r و همچنین مابین r و t چند تا فاصله وجود داشت؟
همینطور نیز متوجه شدید که نتیجه، یعنی فایلهای ایجاد شده توسط touch با دفعه قبل که فقط یک فاصله بین آنها بود تفاوتی ندارد.
حال آگاه شدید که تعداد فضاهای سفید بین شناسهها اهمیت ندارد.
دانستن این مطلب با اهمیت است.
برای مثال:
echo دستوری است که شناسههایش را در خروجی استاندارد (که در این حالت ترمینال است) مینویسد.
در این مثال، ما دستور echo را با چهار شناسه به کار بردهایم:
’best.’ ,’the’ ,’is’ ,’faraznetwork’
فرمان echo این شناسهها را میگیرد و آنها را یک به یک با یک فاصله مابین آنها در خروجی چاپ میکند.
در حالت دوم دقیقا همان اتفاق رخ میدهد. فاصلههای اضافی تفاوتی ایجاد نمیکنند.
اگر واقعا فاصلههای اضافی را خواسته باشیم، لازم است جمله را به صورت یک شناسه منفرد به آن بدهیم.
میتوانیم این کار را با استفاده از نقلقولها انجام بدهیم:
نقلقولها هر چیز را در داخلشان به صورت یک شناسه منفرد بستهبندی میکنند.
این شناسه منفرد ‘faraznetwork is the best’ میباشد، با فاصلههای صحیح.
توجه داشته باشید که نقلقولها بخشی از شناسه نیستند، BASH قبل از تحویل شناسه به فرمان echo آنها را حذف میکند
echo این شناسه منفرد را در خروجی چاپ میکند، درست مانند آنچه همیشه انجام میدهد.
شناسهها:
اینها کلمات اختیاری اضافهای هستند که میتوانید موقع اجرای فرمانها تعیین کنید.
آنها پس از نام فرمانها آورده میشوند (’ls -l foo’) فرمان ls را با دو شناسه اجرا میکند.
نقلقولها:
دو نوع نقلقول (‘) و (“) برای محافظت از کاراکترهای خاص معین در داخل عبارت نقلقولی، از تفسیر شدن به عنوان کاراکتر خاص توسط BASH، استفاده میکنیم.
جهت مشاهده دوره های آموزشی بر روی این لینک کلیک نمایید.
جدیدترین اخبار مجموعه فراز نتورک را در این صفحه اجتماعی دنبال کنید.
نویسنده: موسی رشوند
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.