آموزش اسکریپت نویسی (مستعارها و توابع)
آموزش اسکریپت نویسی (مستعارها و توابع)
BASH چند نوع مختلف از دستورات را شناسایی میکند: مستعارها، توابع، دستورات داخلی، کلمات کلیدی، و اجراییها.
مستعارها:
مستعارها روشی برای کوتاه نمودن دستورات است.
اینها فقط در پوستههای محاورهای به کار میروند، نه در اسکریپتها.
(این یکی از معدود تفاوتهای یک اسکریپت و یک پوسته محاورهای میباشد) مستعار یک نام کوتاه شده برای یک رشته معین است.
موقعی که آن نام به عنوان یک دستور استفاده شود، قبل از اینکه فرمان اجرا گردد، نام با رشته جایگزین میگردد.
بنابراین به جای آن اجرا میگردد:
nmap -P0 -A –osscan_limit 192.168.214.145 $
می توانید از یک مستعار به این شکل استفاده کنید:
‘alias nmapp=’nmap -P0 -A –osscan_limit
nmapp 192.168.214.145
قدرت مستعارها محدود است، جایگزینی فقط در اولین کلمه رخ میدهد.
اگر قابلیت انعطاف بیشتری میخواهید، از یک تابع استفاده کنید.
مستعارها فقط به عنوان میانبرهای متنی مفید میباشند.
قدرت مستعارها محدود است، جایگزینی فقط در اولین کلمه رخ میدهد.
اگر قابلیت انعطاف بیشتری میخواهید، از یک تابع استفاده کنید.
مستعارها فقط به عنوان میانبرهای متنی مفید میباشند.
توابع:
توابع در BASH چیزی مشابه مستعارها هستند، اما قدرتمندتر.
برخلاف مستعارها، توابع میتوانند در اسکریپتها به کار بروند.
یک تابع محتوی فرمانهای پوسته است، بسیار زیاد مانند یک اسکریپت کوچک، حتی میتوانند شناسهها را قبول کنند و متغیرهای محلی ایجاد کنند.
وقتی یک تابع فراخوانده میشود، دستورات داخل آن اجرا میشوند.
دستورات داخلی BASH:
تعدادی دستور اصلی در ساختمان خودش دارد، از قبیل (cd) تغییر دایرکتوری، (echo) نوشتن خروجی و غیره.
میتوانید آنها را به عنوان توابعی که از قبل فراهم شدهاند در نظر بگیرید.
کلمات کلیدی:
کلمههای کلیدی کاملاً مانند دستورات داخلی میباشند، فقط اختلاف اصلی آنها در قواعد تجزیه ویژه در نظر گرفته شده برای آنها میباشد.
برای مثال، [ یک دستور داخلی است، در حالیکه [[یک کلمه کلیدی است.
هر دو برای بررسی موضوعات به کار میروند،
اما چون [[ یک کلمه کلیدی است تا فرمان داخلی، این کلمه کلیدی از چند قاعده ویژه تجزیه سود میبرد که کاربرد آن را آسانتر میسازد:
مثال اول: یک خطا باز میگرداند، زیرا bash سعی میکند فایل b را به دستور [ a ] تغییر مسیر بدهد.
مثال دوم: به طور واقعی آنچه شما انتظار دارید انجام میدهد.
کاراکتر < وقتی که با یک فرمان [[ به کار میرود، دیگر معنی خاص عملگر تغییر مسیر را ندارد.
اجراییها:
آخرین نوع دستوری که میتواند توسط bash اجرا بشود، یک دستور اجرایی است، که همچنین یک دستور خارجی یا برنامه کاربردی نیز نامیده میشود.
اجراییها با استفاده از نام مسیر فراخوانی میشوند.
اگر فایل اجرایی در دایرکتوری جاری است، به صورت ./myprogramبه کار ببرید.
اگر در دایرکتوری usr/local/bin/ است، از /usr/local/bin/myprogram استفاده کنید.
همانطور که قبلا گفتیم BASH از متغیری استفاده میکند،
که بگوید در مواقعی که شما فقط نام برنامه کاربردی را میدانید و نه نام مسیر کامل آنرا، در کجا برنامه را پیدا کند.
این متغیر PATH نام دارد و مجموعهای از نام مسیرهای دایرکتوری است که با کاراکتر کولن از هم جدا شدهاند.
به عنوان مثال:
/bin:/usr/binموقعی که یک فرمان بدون نام مسیر در BASH مشخص میشود
(مثل myprogram، یا ls)، و یک مستعار، تابع، کلمه کلیدی یا دستور داخلی نباشد،
BASH در میان دایرکتوریهای PATH به ترتیب از چپ به راست آنرا جستجو میکند،
که ببیند آیا آنها دارای فایل اجرایی با نامی که تایپ کردهاید، هستند.
نکته: میتوانید از فرمان type برای پیبردن به نوع یک فرمان استفاده کنید.
به عنوان مثال:
جهت مشاهده دوره های آموزشی بر روی این لینک کلیک نمایید.
جدیدترین اخبار مجموعه فراز نتورک را در این صفحه اجتماعی دنبال کنید.
نویسنده: موسی رشوند
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.