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

โลโก้

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

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

ข้อสรุปขึ้น

ด้วยการเพิ่มพารามิเตอร์ตำแหน่ง ตอนนี้เราสามารถเขียนสคริปต์ที่ใช้งานได้จริง สำหรับงานที่เรียบง่ายและซ้ำซากจำเจ พารามิเตอร์ตำแหน่งทำให้สามารถเขียนฟังก์ชันเชลล์ที่มีประโยชน์มาก ซึ่งสามารถวางไว้ใน .bashrc ไฟล์

Our sys_info_page โปรแกรมได้เติบโตขึ้นในความซับซ้อนและความซับซ้อน นี่คือรายชื่อทั้งหมด โดยเน้นการเปลี่ยนแปลงล่าสุด:



#! / bin / ทุบตี


# sys_info_page: โปรแกรมสำหรับส่งออกหน้าข้อมูลระบบ


PROGNAME=$(ชื่อฐาน$0)

TITLE="รายงานข้อมูลระบบสำหรับ $HOSTNAME" CURRENT_TIME=$(date +"%x %r %Z")

TIMESTAMP="สร้าง $CURRENT_TIME โดย $USER"


report_uptime () { แมว <<- _EOF_

เวลาทำงานของระบบ

$(เวลาทำงาน)

_EOF_ กลับมา

#! / bin / ทุบตี


# sys_info_page: โปรแกรมสำหรับส่งออกหน้าข้อมูลระบบ


PROGNAME=$(ชื่อฐาน$0)

TITLE="รายงานข้อมูลระบบสำหรับ $HOSTNAME" CURRENT_TIME=$(date +"%x %r %Z")

TIMESTAMP="สร้าง $CURRENT_TIME โดย $USER"


report_uptime () { แมว <<- _EOF_

เวลาทำงานของระบบ

$(เวลาทำงาน)

_EOF_ กลับมา


}


report_disk_space () { แมว <<- _EOF_

การใช้พื้นที่ดิสก์

$(df -h)

_EOF_ กลับมา

}


report_home_space () {

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

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

$(du -sh /home/*)

_อีโอเอฟ_

อื่น

แมว <<- _EOF_

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

$(du -sh $HOME)

_อีโอเอฟ_

fi กลับ

}


การใช้งาน () {

echo "$PROGNAME: การใช้งาน: $PROGNAME [-f file | -i]" return

}


write_html_page () { แมว <<- _EOF_

$TITLE

$TITLE

$TIMESTAMP

$(report_uptime)

$(รายงาน_disk_space)

$(report_home_space)

_EOF_ กลับมา

}


# ประมวลผลตัวเลือกบรรทัดคำสั่ง

}


report_disk_space () { แมว <<- _EOF_

การใช้พื้นที่ดิสก์

$(df -h)

_EOF_ กลับมา

}


report_home_space () {

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

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

$(du -sh /home/*)

_อีโอเอฟ_

อื่น

แมว <<- _EOF_

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

$(du -sh $HOME)

_อีโอเอฟ_

fi กลับ

}


การใช้งาน () {

echo "$PROGNAME: การใช้งาน: $PROGNAME [-f file | -i]" return

}


write_html_page () { แมว <<- _EOF_

$TITLE

$TITLE

$TIMESTAMP

$(report_uptime)

$(รายงาน_disk_space)

$(report_home_space)

_EOF_ กลับมา

}


# ประมวลผลตัวเลือกบรรทัดคำสั่ง

ภาพ

ข้อสรุปขึ้น


โต้ตอบ=

ชื่อไฟล์=


ในขณะที่ [[ -n $1 ]]; ทำกรณี $ 1 ใน

-f | --ไฟล์)

เปลี่ยน

ชื่อไฟล์=$1

;;

โต้ตอบ=

ชื่อไฟล์=


ในขณะที่ [[ -n $1 ]]; ทำกรณี $ 1 ใน

-f | --ไฟล์)


-i | --แบบโต้ตอบ) โต้ตอบ=1

;;

-h | --help) ออกจากการใช้งาน

;;

*) การใช้งาน >&2

ทางออก 1

;;

กะ esac

ทำ


# โหมดโต้ตอบ


ถ้า [[ -n $โต้ตอบ ]]; แล้วในขณะที่จริง; ทำ

อ่าน -p "ป้อนชื่อไฟล์ที่ส่งออก: " ชื่อไฟล์ถ้า [[ -e $filename ]]; แล้ว

read -p "'$filename' มีอยู่แล้ว เขียนทับหรือไม่ [y/n/q] > " case $REPLY in

Y|y) แตก

;;

Q|q) echo "โปรแกรมถูกยกเลิก" ทางออก

;;

*) ดำเนินต่อ

;;

ว่า C

elif [[ -z $filename ]]; แล้วไปต่อ

อื่น

ทำลาย

fi

ทำ

fi


# หน้า html เอาต์พุต


ถ้า [[ -n $filename ]]; แล้ว

ถ้าแตะ $filename && [[ -f $filename ]]; จากนั้น write_html_page > $filename

อื่น

-i | --แบบโต้ตอบ) โต้ตอบ=1

;;

-h | --help) ออกจากการใช้งาน

;;

*) การใช้งาน >&2

ทางออก 1

;;

กะ esac

ทำ


# โหมดโต้ตอบ


ถ้า [[ -n $โต้ตอบ ]]; แล้วในขณะที่จริง; ทำ

อ่าน -p "ป้อนชื่อไฟล์ที่ส่งออก: " ชื่อไฟล์ถ้า [[ -e $filename ]]; แล้ว

read -p "'$filename' มีอยู่แล้ว เขียนทับหรือไม่ [y/n/q] > " case $REPLY in

Y|y) แตก

;;

Q|q) echo "โปรแกรมถูกยกเลิก" ทางออก

;;

*) ดำเนินต่อ

;;

ว่า C

elif [[ -z $filename ]]; แล้วไปต่อ

อื่น

ทำลาย

fi

ทำ

fi


# หน้า html เอาต์พุต


ถ้า [[ -n $filename ]]; แล้ว

ถ้าแตะ $filename && [[ -f $filename ]]; จากนั้น write_html_page > $filename

อื่น


echo "$PROGNAME: ไม่สามารถเขียนไฟล์ '$filename'" >&2 exit 1

fi อื่น

เขียน_html_page

fi

echo "$PROGNAME: ไม่สามารถเขียนไฟล์ '$filename'" >&2 exit 1

fi อื่น

เขียน_html_page

fi


เรายังไม่เสร็จ ยังมีอีกหลายสิ่งที่เราสามารถทำได้และการปรับปรุงที่เราสามารถทำได้


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