وتلخيصا
بدأنا هذا الفصل بسؤال. كيف يمكننا أن نجعل sys_info_page يكتشف البرنامج النصي ما إذا كان المستخدم لديه إذن لقراءة كافة الدلائل الرئيسية؟ من خلال معرفتنا بـ if، يمكننا حل المشكلة عن طريق إضافة هذا الرمز إلى ملف report_home_space وظيفة:
Report_home_space () {
إذا [[$ (id -u) -eq 0]]؛ ثم القط << - _EOF_
استخدام مساحة المنزل (كل المستخدمين)
$ (du -sh / home / *)
_EOF_
آخر
قطة << - _EOF_
استخدام المساحات المنزلية ($ USER)
$ (du -sh $ HOME)
_EOF_
عودة fi
}
Report_home_space () {
إذا [[$ (id -u) -eq 0]]؛ ثم القط << - _EOF_
استخدام مساحة المنزل (كل المستخدمين)
$ (du -sh / home / *)
_EOF_
آخر
قطة << - _EOF_
استخدام المساحات المنزلية ($ USER)
$ (du -sh $ HOME)
_EOF_
عودة fi
}
نقوم بتقييم ناتج id أمر. مع ال -u اختيار، id إخراج رقم معرف المستخدم الرقمي للمستخدم الفعال. المستخدم المتميز هو دائمًا صفر وكل مستخدم آخر هو رقم أكبر من الصفر. بمعرفة هذا ، يمكننا إنشاء وثيقتين مختلفتين هنا ، أحدهما يستفيد من امتيازات المستخدم المتميز ، والآخر يقتصر على الدليل الرئيسي للمستخدم.
سنأخذ استراحة من sys_info_page البرنامج ، ولكن لا تقلق. سوف يعود. في غضون ذلك ، سنغطي بعض الموضوعات التي سنحتاجها عندما نستأنف عملنا.