เวิร์กสเตชันออนไลน์ของ OnWorks Linux และ Windows

โลโก้

ฟรีโฮสติ้งออนไลน์สำหรับเวิร์กสเตชัน

<ก่อนหน้านี้ | เนื้อหา | ถัดไป>

ข้อสรุปขึ้น

ด้วยความรู้ของเราเกี่ยวกับ for คำสั่ง ตอนนี้เราจะใช้การปรับปรุงขั้นสุดท้ายของเรา sys_info_page สคริปต์ ปัจจุบัน report_home_space ฟังก์ชั่นมีลักษณะดังนี้:



report_home_space () {

ถ้า [[ $(id -u) -eq 0 ]]; แล้วก็แมว <<- _EOF_

การใช้พื้นที่ในบ้าน (ผู้ใช้ทั้งหมด)

$(du -sh /home/*)

_อีโอเอฟ_

อื่น

แมว <<- _EOF_

การใช้พื้นที่ในบ้าน ($USER)

$(du -sh $HOME)

_อีโอเอฟ_

fi กลับ

}

report_home_space () {

ถ้า [[ $(id -u) -eq 0 ]]; แล้วก็แมว <<- _EOF_

การใช้พื้นที่ในบ้าน (ผู้ใช้ทั้งหมด)

$(du -sh /home/*)

_อีโอเอฟ_

อื่น

แมว <<- _EOF_

การใช้พื้นที่ในบ้าน ($USER)

$(du -sh $HOME)

_อีโอเอฟ_

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 | ตัด -f 1)


เสียงสะท้อน " $i "เอคโค่" "

printf "$format" "Dirs" "Files" "ขนาด" printf "$format" "----" "-----" "----"

printf "$format" $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 | ตัด -f 1)


เสียงสะท้อน " $i "เอคโค่" "

printf "$format" "Dirs" "Files" "ขนาด" printf "$format" "----" "-----" "----"

printf "$format" $total_dirs $total_files $total_size echo " "

กลับมาแล้ว

}


การเขียนใหม่นี้ใช้สิ่งที่เราได้เรียนรู้ไปมาก เรายังคงทดสอบ superuser แต่แทนที่จะดำเนินการชุดการกระทำทั้งหมดโดยเป็นส่วนหนึ่งของ ifเราตั้งค่าตัวแปรบางตัวที่ใช้ในภายหลังใน for loop เราได้เพิ่มตัวแปรท้องถิ่นหลายตัวให้กับฟังก์ชันและใช้ประโยชน์จาก printf เพื่อจัดรูปแบบเอาต์พุตบางส่วน


ระบบปฏิบัติการคลาวด์คอมพิวติ้งยอดนิยมที่ OnWorks: