BASH چند نوع مختلف از دستورات را شناسایی میکند: مستعارها، توابع، دستورات داخلی، کلمات کلیدی، و اجراییها.
مستعارها: مستعارها روشی برای کوتاه نمودن دستورات است. اینها فقط در پوستههای محاورهای به کار میروند، نه در اسکریپتها. ( این یکی از معدود تفاوتهای یک اسکریپت و یک پوسته محاورهای میباشد.) مستعار یک نام کوتاه شده برای یک رشته معین است. موقعی که آن نام به عنوان یک دستور استفاده شود، قبل از اینکه فرمان اجرا گردد، نام با رشته جایگزین میگردد. بنابراین به جای آن اجرا میگردد:
$ nmap -P0 -A --osscan_limit 192.168.0.1
میتوانید از یک مستعار به این شکل استفاده کنید:
$ alias nmapp='nmap -P0 -A --osscan_limit' $ nmapp 192.168.0.1
قدرت مستعارها محدود است، جایگزینی فقط در اولین کلمه رخ میدهد. اگر قابلیت انعطاف بیشتری میخواهید، از یک تابع استفاده کنید. مستعارها فقط به عنوان میانبرهای متنی مفید میباشند.
دستورات داخلی: BASH تعدادی دستور اصلی در ساختمان خودش دارد، از قبیل cd (تغییر دایرکتوری)، echo (نوشتن خروجی)، وغیره. میتوانید آنها را به عنوان توابعی که از قبل فراهم شدهاند در نظر بگیرید.
کلمات کلیدی: کلمههای کلیدی کاملاً مانند دستورات داخلی میباشند، فقط اختلاف اصلی آنها درقواعد تجزیه ویژه در نظر گرفته شده برای آنها میباشد. برای مثال، [ یک دستور داخلی است، در حالیکه
$ [ a< b ]-bash: b: No such file or directory $[[ a< b ]]
مثال اول یک خطا باز میگرداند، زیرا bash سعی میکند فایل b را به دستور [ a ] تغییر مسیر بدهد(بخش تغییر مسیر فایل را ملاحظه کنید) مثال دوم به طور واقعی آنچه شما انتظار دارید انجام میدهد. کاراکتر
اجراییها: آخرین نوع دستوری که میتواند توسط bash اجرا بشود، یک دستور اجرایی است، که همچنین یک دستور خارجی یا برنامهکاربردی نیز نامیده میشود. اجراییها با استفاده از نام مسیر فراخوانی میشوند. اگر فایل اجرایی در دایرکتوری جاری است، به صورت
برای اندکی آسانتر نمودن زندگی شما، بههرحال، BASH از متغیری استفاده میکند، که بگوید در مواقعی که شما فقط نام برنامه کاربردی را میدانید و نه نام مسیرکامل آنرا، در کجا برنامه را پیدا کند. این متغیر
نکته:
میتوانید از فرمان type برای پیبردن به نوع یک فرمان استفاده کنید.
به عنوان مثال:
$ type rmrm is hashed (/bin/rm) $ type cdcd is a shell builtin
در مستندات گنو: دستورات ساده
در پرسش و پاسخهای رایج:
تفاوت بین test و [ و
چگونه میتوانم مستعاری ایجاد کنم که یک شناسه دریافت کند؟
مستعارها: یک نام که به یک رشته نسبت داده شده است. موقعی که نام به عنوان یک فرمان به کار برود، با رشته نسبت داده شده تعویض میگردد.
تابع: یک نام که به یک مجموعه از دستورات نسبت داده شده است . وقتی که نام به عنوان یک دستور استفاده شود، تابع با شناسههای به کار رفته در خطفرمان ، فراخوانی میشود. توابع روش اصلی برای ایجاد فرمانهای جدید هستند.
دستورات داخلی: فرمانهای معینی که در داخل BASH ساخته شدهاند. اینها موقعی که در خطفرمان اجرا شوند به طور داخلی اجرا میشوند( و پردازش جدیدی ایجاد نمیکنند ).
برنامههای کاربردی: یک برنامه که میتواند با ارجاع به نام مسیر آن اجرا شود(