مستعارها
مستعارها در نگاه اول ظاهراً مشابه توابع هستند، اما در بررسی عمیقتر، آنها رفتار کاملا متفاوتی دارند.
- مستعارها به هیچ وجه در اسکریپتها عمل نمیکنند. آنها فقط در پوسته محاورهای کار میکنند.
- مستعارها نمیتوانند شناسه قبول کنند.
- مستعارها خودشان را به طور بازگشتی احضار نمیکنند.
- مستعارها نمیتوانند متغیرهای محلی داشته باشند.
اساساً مستعارها، میانبرهایی برای استفاده درفایلهای .bashrc جهت آسانتر نمودن روند کارهای شما میباشند. آنها به طور معمول چنین به نظر میآیند:
$ alias ls=\'ls--color=auto \'
BASH اولین کلمه هر دستور ساده را بررسی میکند، که ببیند آیا یک مستعار است، و اگر چنین باشد، یک جایگزینی ساده متن را انجام میدهد. بنابراین، اگر شما تایپ کنید
$ ls /tmp
BASH چنان عمل میکند، که گویی تایپ نمودهاید
$ ls--color=auto /tmp
اگر خواسته باشید این توانایی را در یک تابع ایجاد کنید، به این شکل خواهد شد:
$ unalias ls $ls() { command ls--color=auto " $@ "; }
همانند یک گروه دستور، اگر بخواهیم تمام آن را در یک سطر بنویسیم، لازم است یک سمیکالن (
مستعارها تا زمانی که شما از آنها نخواهید همچون توابع کار کنند، مناسب هستند. اگر رفتار پیچیدهای مورد انتظار شماست، به جای آن از تابع استفاده کنید.
انهدام ساختارها
برای از بین بردن یک تابع یا متغیراز محیط جاری پوسته خود، دستور unset را به کار ببرید.
$ unsetmyfunction
برای از بین بردن مستعار، فرمان unalias را به کار ببرید.
$ unalias rm
در مستندات گنو: Bourne Shell Builtins