جمعبندی
با دانش ما از برای دستور، اکنون بهبودهای نهایی را در مورد خود اعمال خواهیم کرد 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 user_name
اگر [[ $(id -u) -eq 0 ]]; سپس dir_list=/home/* user_name="همه کاربران"
دیگر
dir_list=$HOME user_name=$USER
fi
پژواک" استفاده از فضای خانه ($user_name) "برای i در $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 " "
بازگشت انجام شده
}
قالب محلی="%8s%10s%10s\n"
محلی 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) "برای i در $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، تعدادی متغیر را که بعداً در یک حلقه for استفاده می شوند تنظیم می کنیم. ما چندین متغیر محلی را به تابع اضافه کرده ایم و از آن استفاده کرده ایم printf برای فرمت بخشی از خروجی