استفاده از پارامترهای موقعیت با توابع پوسته
همانطور که از پارامترهای موقعیتی برای ارسال آرگومان ها به اسکریپت های پوسته استفاده می شود، می توان از آنها برای ارسال آرگومان ها به توابع پوسته نیز استفاده کرد. برای نشان دادن، ما آن را تبدیل می کنیم اطلاعات فایل اسکریپت به یک تابع پوسته:
اطلاعات فایل () {
# file_info: تابعی برای نمایش اطلاعات فایل اگر [[ -e $1 ]]؛ سپس
echo -e "\nنوع فایل:" فایل $1
echo -e "\nوضعیت فایل:" stat $1
دیگر
بازتاب "$FUNCNAME: استفاده: فایل $FUNCNAME" >&2 بازگشت 1
اطلاعات فایل () {
# file_info: تابعی برای نمایش اطلاعات فایل اگر [[ -e $1 ]]؛ سپس
echo -e "\nنوع فایل:" فایل $1
echo -e "\nوضعیت فایل:" stat $1
دیگر
بازتاب "$FUNCNAME: استفاده: فایل $FUNCNAME" >&2 بازگشت 1
fi
}
fi
}
حال، اگر اسکریپتی که شامل اطلاعات فایل تابع پوسته تابع را با آرگومان نام فایل فراخوانی می کند، آرگومان به تابع ارسال می شود.
با این قابلیت، ما می توانیم بسیاری از توابع مفید پوسته را بنویسیم که نه تنها در اسکریپت ها، بلکه در داخل ما نیز قابل استفاده هستند. .bashrc فایل های.
توجه کنید که PROGNAME متغیر به متغیر shell تغییر یافت FUNCNAME. پوسته بهطور خودکار این متغیر را بهروزرسانی میکند تا عملکرد شل اجرا شده را پیگیری کند. توجه داشته باشید که $0 همیشه شامل نام مسیر کامل اولین مورد در خط فرمان (یعنی نام برنامه) است و آنطور که انتظار داریم نام تابع پوسته را در بر نمی گیرد.