وتلخيصا
بمعرفتنا لـ For الأمر ، سنقوم الآن بتطبيق التحسينات النهائية على sys_info_page النصي. حاليا ، 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
}
بعد ذلك ، سنعيد كتابته لتوفير مزيد من التفاصيل عن الدليل الرئيسي لكل مستخدم ، بما في ذلك العدد الإجمالي للملفات والأدلة الفرعية في كل منها:
Report_home_space () {
Report_home_space () {
التنسيق المحلي = "٪ 8s٪ 10s٪ 10s \ n"
المحلية i dir_list total_files total_dirs total_size اسم المستخدم
إذا [[$ (id -u) -eq 0]]؛ ثم dir_list = / home / * user_name = "All Users"
آخر
dir_list = $ HOME user_name = $ USER
fi
صدى صوت " استخدام مساحة المنزل ($ user_name) "لأني في $ dir_list؛ do
total_files = $ (اعثر على $ i -type f | wc -l) total_dirs = $ (اعثر على $ i -type d | wc -l) total_size = $ (du -sh $ i | cut -f 1)
صدى صوت " أنا $ " صدى صوت " "
printf "$ format" "Dirs" "الملفات" "الحجم" printf "$ format" "----" "-----" "----"
printf "تنسيق $" $ total_dirs $ total_files $ total_size echo " "
انتهى العودة
}
التنسيق المحلي = "٪ 8s٪ 10s٪ 10s \ n"
المحلية i dir_list total_files total_dirs total_size اسم المستخدم
إذا [[$ (id -u) -eq 0]]؛ ثم dir_list = / home / * user_name = "All Users"
آخر
dir_list = $ HOME user_name = $ USER
fi
صدى صوت " استخدام مساحة المنزل ($ user_name) "لأني في $ dir_list؛ do
total_files = $ (اعثر على $ i -type f | wc -l) total_dirs = $ (اعثر على $ i -type d | wc -l) total_size = $ (du -sh $ i | cut -f 1)
صدى صوت " أنا $ " صدى صوت " "
printf "$ format" "Dirs" "الملفات" "الحجم" printf "$ format" "----" "-----" "----"
printf "تنسيق $" $ total_dirs $ total_files $ total_size echo " "
انتهى العودة
}
تطبق إعادة الكتابة هذه الكثير مما تعلمناه حتى الآن. ما زلنا نختبر المستخدم المتميز ، ولكن بدلاً من تنفيذ مجموعة كاملة من الإجراءات كجزء من if، قمنا بتعيين بعض المتغيرات المستخدمة لاحقًا في حلقة for. لقد أضفنا العديد من المتغيرات المحلية إلى الدالة واستخدمناها printf لتنسيق بعض الإخراج.