Summing Up
ດ້ວຍຄວາມຮູ້ຂອງພວກເຮົາກ່ຽວກັບ ສໍາລັບການ ຄໍາສັ່ງ, ໃນປັດຈຸບັນພວກເຮົາຈະນໍາໃຊ້ການປັບປຸງສຸດທ້າຍຂອງພວກເຮົາ sys_info_page script. ໃນປັດຈຸບັນ, ໄດ້ report_home_space function ເບິ່ງຄືນີ້:
report_home_space () {
ຖ້າ [[ $(id -u) -eq 0 ]]; ແລ້ວແມວ <<- _EOF_
ການນຳໃຊ້ພື້ນທີ່ໃນເຮືອນ (ຜູ້ໃຊ້ທັງໝົດ)
$(du -sh /home/*)
_EOF_
ອື່ນ
cat <<- _EOF_
ການນໍາໃຊ້ພື້ນທີ່ໃນເຮືອນ ($USER)
$(du -sh $HOME)
_EOF_
fi ກັບຄືນ
}
report_home_space () {
ຖ້າ [[ $(id -u) -eq 0 ]]; ແລ້ວແມວ <<- _EOF_
ການນຳໃຊ້ພື້ນທີ່ໃນເຮືອນ (ຜູ້ໃຊ້ທັງໝົດ)
$(du -sh /home/*)
_EOF_
ອື່ນ
cat <<- _EOF_
ການນໍາໃຊ້ພື້ນທີ່ໃນເຮືອນ ($USER)
$(du -sh $HOME)
_EOF_
fi ກັບຄືນ
}
ຕໍ່ໄປ, ພວກເຮົາຈະຂຽນມັນຄືນໃຫມ່ເພື່ອໃຫ້ລາຍລະອຽດເພີ່ມເຕີມສໍາລັບແຕ່ລະໄດເລກະທໍລີຫນ້າທໍາອິດຂອງຜູ້ໃຊ້, ແລະລວມເອົາຈໍານວນໄຟລ໌ແລະໄດເລກະທໍລີຍ່ອຍທັງຫມົດໃນແຕ່ລະ:
report_home_space () {
report_home_space () {
local format="%8s%10s%10s\n"
local i dir_list total_files total_dirs total_size user_name
ຖ້າ [[ $(id -u) -eq 0 ]]; ຈາກນັ້ນ dir_list=/home/* user_name="ຜູ້ໃຊ້ທັງໝົດ"
ອື່ນ
dir_list=$HOME user_name=$USER
fi
ສຽງສະທ້ອນ " ການໃຊ້ພື້ນທີ່ໃນເຮືອນ ($user_name) " ສໍາລັບຂ້ອຍໃນ $dir_list; ເຮັດ
total_files=$(ຊອກຫາ $i -type f | wc -l) total_dirs=$(ຊອກຫາ $i -type d | wc -l) total_size=$(du -sh $i | cut -f 1)
ສຽງສະທ້ອນ " $i "ສຽງດັງ" "
printf "$format" "Dirs" "Files" "Size" printf "$format" "----" "-----" "----"
printf "$format" $total_dirs $total_files $total_size echo " "
ສຳເລັດແລ້ວ
}
local format="%8s%10s%10s\n"
local i dir_list total_files total_dirs total_size user_name
ຖ້າ [[ $(id -u) -eq 0 ]]; ຈາກນັ້ນ dir_list=/home/* user_name="ຜູ້ໃຊ້ທັງໝົດ"
ອື່ນ
dir_list=$HOME user_name=$USER
fi
ສຽງສະທ້ອນ " ການໃຊ້ພື້ນທີ່ໃນເຮືອນ ($user_name) " ສໍາລັບຂ້ອຍໃນ $dir_list; ເຮັດ
total_files=$(ຊອກຫາ $i -type f | wc -l) total_dirs=$(ຊອກຫາ $i -type d | wc -l) total_size=$(du -sh $i | cut -f 1)
ສຽງສະທ້ອນ " $i "ສຽງດັງ" "
printf "$format" "Dirs" "Files" "Size" printf "$format" "----" "-----" "----"
printf "$format" $total_dirs $total_files $total_size echo " "
ສຳເລັດແລ້ວ
}
ການຂຽນຄືນນີ້ໃຊ້ຫຼາຍສິ່ງທີ່ພວກເຮົາໄດ້ຮຽນຮູ້ມາເຖິງຕອນນັ້ນ. ພວກເຮົາຍັງທົດສອບສໍາລັບ superuser, ແຕ່ແທນທີ່ຈະປະຕິບັດຊຸດການປະຕິບັດທີ່ສົມບູນເປັນສ່ວນຫນຶ່ງຂອງ if, ພວກເຮົາກໍານົດບາງຕົວແປທີ່ໃຊ້ໃນພາຍຫລັງໃນສໍາລັບ loop. ພວກເຮົາໄດ້ເພີ່ມຕົວແປໃນທ້ອງຖິ່ນຈໍານວນຫນຶ່ງໃນການທໍາງານແລະການນໍາໃຊ້ຂອງ printf ເພື່ອຈັດຮູບແບບບາງຜົນຜະລິດ.