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

โลโก้

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

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

ให้สคริปต์ทำงานต่อไป

ในขณะที่พัฒนาโปรแกรมของเรา การรักษาโปรแกรมให้อยู่ในสถานะที่รันได้นั้นมีประโยชน์ การทำเช่นนี้และการทดสอบบ่อยๆ ทำให้เราสามารถตรวจพบข้อผิดพลาดได้ตั้งแต่เนิ่นๆ ในกระบวนการพัฒนา ซึ่งจะทำให้ปัญหาการดีบักง่ายขึ้นมาก ตัวอย่างเช่น หากเราเรียกใช้โปรแกรม ทำการเปลี่ยนแปลงเล็กน้อย จากนั้นเรียกใช้โปรแกรมอีกครั้งและพบปัญหา มีความเป็นไปได้สูงที่การเปลี่ยนแปลงล่าสุดจะเป็นสาเหตุของปัญหา โดยการเพิ่มฟังก์ชันว่างที่เรียกว่า ไม่สมบูรณ์ ในโปรแกรมเมอร์พูด เราสามารถยืนยันโฟลว์เชิงตรรกะของโปรแกรมของเราได้ตั้งแต่เริ่มต้น เมื่อสร้าง stub จะเป็นความคิดที่ดีที่จะรวมสิ่งที่ให้ข้อเสนอแนะแก่โปรแกรมเมอร์ ซึ่งแสดงให้เห็นว่ากำลังดำเนินการโฟลว์เชิงตรรกะอยู่ หากเราดูผลลัพธ์ของสคริปต์ของเราตอนนี้:



[me@linuxbox ~]$ sys_info_page

รายงานข้อมูลระบบสำหรับ twin2

[me@linuxbox ~]$ sys_info_page

รายงานข้อมูลระบบสำหรับ twin2


รายงานข้อมูลระบบสำหรับ linuxbox

สร้างเมื่อ 03/19/2009 04:02:10 PM EDT โดยฉัน


รายงานข้อมูลระบบสำหรับ linuxbox

สร้างเมื่อ 03/19/2009 04:02:10 PM EDT โดยฉัน



เราเห็นว่ามีบางบรรทัดว่างในเอาต์พุตของเราหลังการประทับเวลา แต่เราไม่แน่ใจถึงสาเหตุ หากเราเปลี่ยนฟังก์ชันเพื่อรวมข้อเสนอแนะบางอย่าง:



report_uptime () {

echo "ดำเนินการรายงาน_uptime แล้ว"

กลับ

}


report_disk_space () {

echo "ดำเนินการรายงาน_disk_space แล้ว"

กลับ

}


report_home_space () {

echo "ดำเนินการรายงาน_home_space แล้ว"

กลับ

}

report_uptime () {

echo "ดำเนินการรายงาน_uptime แล้ว"

กลับ

}


report_disk_space () {

echo "ดำเนินการรายงาน_disk_space แล้ว"

กลับ

}


report_home_space () {

echo "ดำเนินการรายงาน_home_space แล้ว"

กลับ

}


และเรียกใช้สคริปต์อีกครั้ง:



[me@linuxbox ~]$ sys_info_page

รายงานข้อมูลระบบสำหรับ linuxbox

รายงานข้อมูลระบบสำหรับ linuxbox

สร้างเมื่อ 03/20/2009 05:17:26 AM EDT โดยฉัน เรียกใช้ฟังก์ชัน report_uptime แล้ว

เรียกใช้ฟังก์ชัน report_disk_space แล้ว เรียกใช้ฟังก์ชัน report_home_space แล้ว

[me@linuxbox ~]$ sys_info_page

รายงานข้อมูลระบบสำหรับ linuxbox

รายงานข้อมูลระบบสำหรับ linuxbox

สร้างเมื่อ 03/20/2009 05:17:26 AM EDT โดยฉัน เรียกใช้ฟังก์ชัน report_uptime แล้ว

เรียกใช้ฟังก์ชัน report_disk_space แล้ว เรียกใช้ฟังก์ชัน report_home_space แล้ว

ให้สคริปต์ทำงานต่อไป


ตอนนี้เราเห็นแล้วว่า อันที่จริง ฟังก์ชันทั้งสามของเรากำลังดำเนินการอยู่

เมื่อเฟรมเวิร์กของฟังก์ชันของเราใช้งานได้แล้ว ก็ได้เวลาสร้างโค้ดฟังก์ชันบางส่วนแล้ว ประการแรก report_uptime ฟังก์ชั่น:


report_uptime () {

แมว <<- _EOF_

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

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

_อีโอเอฟ_

กลับ

}

report_uptime () {

แมว <<- _EOF_

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

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

_อีโอเอฟ_

กลับ

}


มันค่อนข้างตรงไปตรงมา เราใช้เอกสารที่นี่เพื่อส่งออกส่วนหัวและผลลัพธ์ของ uptime คำสั่งล้อมรอบด้วย แท็กเพื่อรักษารูปแบบของคำสั่ง NS รายงาน_disk_space ฟังก์ชั่นคล้ายกัน:


report_disk_space () {

แมว <<- _EOF_

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

$(df -h)

_อีโอเอฟ_

กลับ

}

report_disk_space () {

แมว <<- _EOF_

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

$(df -h)

_อีโอเอฟ_

กลับ

}


ฟังก์ชันนี้ใช้ df -h คำสั่งกำหนดจำนวนเนื้อที่ดิสก์ สุดท้ายนี้ เราจะสร้าง report_home_space ฟังก์ชั่น:


report_home_space () {

แมว <<- _EOF_

การใช้พื้นที่ในบ้าน

$(du -sh /home/*)

_อีโอเอฟ_

กลับ

}

report_home_space () {

แมว <<- _EOF_

การใช้พื้นที่ในบ้าน

$(du -sh /home/*)

_อีโอเอฟ_

กลับ

}


เราใช้ du สั่งกับ -NS ตัวเลือกในการดำเนินการงานนี้ อย่างไรก็ตาม นี่ไม่ใช่วิธีแก้ปัญหาที่สมบูรณ์ แม้ว่ามันจะทำงานบนบางระบบ (เช่น อูบุนตู) แต่จะใช้งานกับระบบอื่นไม่ได้ เหตุผลก็คือหลายระบบตั้งค่าการอนุญาตของโฮมไดเร็กทอรีเพื่อป้องกันไม่ให้อ่านได้ทั่วโลก ซึ่งเป็นมาตรการรักษาความปลอดภัยที่สมเหตุสมผล ในระบบเหล่านี้ report_home_space ฟังก์ชั่นตามที่เขียน will


ภาพ

ใช้งานได้ก็ต่อเมื่อสคริปต์ของเราทำงานด้วยสิทธิ์ผู้ใช้ระดับสูงเท่านั้น ทางออกที่ดีกว่าคือให้สคริปต์ปรับพฤติกรรมตามสิทธิ์ของผู้ใช้ เราจะพูดถึงเรื่องนี้ในบทต่อไป


ฟังก์ชั่นเชลล์ในไฟล์ .bashrc ของคุณ

ฟังก์ชันของเชลล์ใช้แทนนามแฝงได้อย่างดีเยี่ยม และจริงๆ แล้วเป็นวิธีที่นิยมใช้ในการสร้างคำสั่งเล็กๆ น้อยๆ สำหรับการใช้งานส่วนตัว นามแฝงมีข้อ จำกัด อย่างมากในประเภทของคำสั่งและคุณสมบัติของเชลล์ที่พวกเขาสนับสนุน ในขณะที่ฟังก์ชั่นเชลล์อนุญาตทุกสิ่งที่สามารถเขียนสคริปต์ได้ ตัวอย่างเช่น ถ้าเราชอบ รายงาน_disk_space ฟังก์ชันเชลล์ที่เราพัฒนาขึ้นสำหรับสคริปต์ของเรา เราสามารถสร้างฟังก์ชันที่คล้ายกันได้ชื่อว่า ds สำหรับพวกเรา .ทุบตี ไฟล์:

ดีเอส () {

echo “การใช้พื้นที่ดิสก์สำหรับ $HOSTNAME” df -h

}


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