استخدام المعلمات الموضعية مع وظائف Shell
مثلما يتم استخدام المعلمات الموضعية لتمرير الوسائط إلى نصوص shell ، يمكن أيضًا استخدامها لتمرير الوسائط إلى وظائف shell. للتوضيح ، سنقوم بتحويل ملف معلومات الملف البرنامج النصي في دالة shell:
معلومات الملف () {
# file_info: وظيفة لعرض معلومات الملف إذا [[-e $ 1]]؛ من ثم
echo -e "\ n نوع الملف:" file $ 1
echo -e "\ n حالة الملف:" stat $ 1
آخر
صدى "$ FUNCNAME: الاستخدام: ملف $ FUNCNAME"> & 2 إرجاع 1
معلومات الملف () {
# file_info: وظيفة لعرض معلومات الملف إذا [[-e $ 1]]؛ من ثم
echo -e "\ n نوع الملف:" file $ 1
echo -e "\ n حالة الملف:" stat $ 1
آخر
صدى "$ FUNCNAME: الاستخدام: ملف $ FUNCNAME"> & 2 إرجاع 1
fi
}
fi
}
الآن ، إذا كان البرنامج النصي الذي يشتمل على الامتداد معلومات الملف تستدعي دالة shell الوظيفة باستخدام وسيطة اسم الملف ، وسيتم تمرير الوسيطة إلى الوظيفة.
من خلال هذه الإمكانية ، يمكننا كتابة العديد من وظائف الصدفة المفيدة التي لا يمكن استخدامها فقط في البرامج النصية ، ولكن أيضًا داخل .bashrc الملفات.
لاحظ أن PROGNAME تم تغيير المتغير إلى متغير shell FUNCNAME. تقوم الصدفة تلقائيًا بتحديث هذا المتغير لتتبع وظيفة الصدفة المنفذة حاليًا. لاحظ أن $0 يحتوي دائمًا على اسم المسار الكامل للعنصر الأول في سطر الأوامر (أي اسم البرنامج) ولا يحتوي على اسم وظيفة الصدفة كما قد نتوقع.