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

โลโก้

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

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

ฟังก์ชั่นเชลล์

ขณะนี้สคริปต์ของเราดำเนินการตามขั้นตอนต่อไปนี้เพื่อสร้างเอกสาร HTML:

1. เปิดหน้า

2. เปิดส่วนหัวของหน้า

3. ตั้งชื่อเพจ

4. ปิดส่วนหัวของหน้า

5. เปิดเนื้อหาของหน้า

6. ส่วนหัวของหน้าผลลัพธ์

7. การประทับเวลาของเอาต์พุต

8. ปิดเนื้อหาของหน้า

9. ปิดหน้า

สำหรับขั้นตอนต่อไปของการพัฒนา เราจะเพิ่มงานบางอย่างระหว่างขั้นตอนที่ 7 ถึง 8 ซึ่งจะรวมถึง:

● เวลาทำงานและโหลดของระบบ นี่คือระยะเวลานับตั้งแต่การปิดระบบหรือรีบูตครั้งล่าสุด และจำนวนเฉลี่ยของงานที่กำลังรันอยู่บนโปรเซสเซอร์ในช่วงเวลาต่างๆ

● พื้นที่ดิสก์ การใช้พื้นที่โดยรวมบนอุปกรณ์จัดเก็บข้อมูลของระบบ

● พื้นที่บ้าน จำนวนพื้นที่เก็บข้อมูลที่ผู้ใช้แต่ละคนใช้


หากเรามีคำสั่งสำหรับงานเหล่านี้ เราสามารถเพิ่มคำสั่งเหล่านี้ในสคริปต์ของเราได้ง่ายๆ ด้วยการแทนที่คำสั่ง:



#! / bin / ทุบตี


# โปรแกรมออกหน้าข้อมูลระบบ


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

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


แมว << _EOF_

#! / bin / ทุบตี


# โปรแกรมออกหน้าข้อมูลระบบ


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

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


แมว << _EOF_


$TITLE

$TITLE

$TIMESTAMP

$(report_uptime)

$(รายงาน_disk_space)

$(report_home_space)

_อีโอเอฟ_

$TITLE

$TITLE

$TIMESTAMP

$(report_uptime)

$(รายงาน_disk_space)

$(report_home_space)

_อีโอเอฟ_


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

ฟังก์ชัน ชื่อ {

คำสั่ง

กลับ

}

และรูปแบบที่ง่ายกว่า (และเป็นที่ต้องการโดยทั่วไป):

ชื่อ () {

คำสั่ง

กลับ

}

ภาพ

#! / bin / ทุบตี

#! / bin / ทุบตี

# สาธิตการทำงานของเชลล์


ฟังก์ชั่น step2 { echo "ขั้นตอนที่ 2" return

}

# โปรแกรมหลักเริ่มที่นี่ echo "ขั้นตอนที่ 1"

# สาธิตการทำงานของเชลล์


ฟังก์ชั่น step2 { echo "ขั้นตอนที่ 2" return

}

# โปรแกรมหลักเริ่มที่นี่ echo "ขั้นตอนที่ 1"

ที่ไหน ชื่อ เป็นชื่อของฟังก์ชันและ คำสั่ง เป็นชุดคำสั่งที่อยู่ภายในฟังก์ชัน ทั้งสองรูปแบบเท่ากันและอาจใช้แทนกันได้ ด้านล่าง เราจะเห็นสคริปต์ที่สาธิตการใช้ฟังก์ชันเชลล์:


1

2

3

4

5

6

7

8

9

10

11

12

1

2

3

4

5

6

7

8

9

10

11

12

ฟังก์ชั่นเชลล์


13 ขั้นตอนที่ 2

14 เสียงสะท้อน "ขั้นตอนที่ 3"

13 ขั้นตอนที่ 2

14 เสียงสะท้อน "ขั้นตอนที่ 3"


เมื่อเชลล์อ่านสคริปต์ เชลล์จะข้ามบรรทัดที่ 1 ถึง 11 เนื่องจากบรรทัดเหล่านั้นประกอบด้วยความคิดเห็นและนิยามฟังก์ชัน การดำเนินการเริ่มต้นที่บรรทัดที่ 12 โดยมี an เสียงสะท้อน สั่งการ. สาย 13 โทร ฟังก์ชันเชลล์ step2 และเชลล์รันฟังก์ชันเหมือนกับที่มันทำกับคำสั่งอื่นๆ ตัวควบคุมโปรแกรมจะย้ายไปที่บรรทัดที่ 6 และวินาที เสียงสะท้อน คำสั่งถูกดำเนินการ บรรทัดที่ 7 จะดำเนินการต่อไป มันคือ กลับ คำสั่งยุติฟังก์ชันและส่งคืนการควบคุมไปยังโปรแกรมที่บรรทัดตามหลังการเรียกใช้ฟังก์ชัน (บรรทัดที่ 14) และรายการสุดท้าย เสียงสะท้อน คำสั่งถูกดำเนินการ โปรดทราบว่าเพื่อให้การเรียกใช้ฟังก์ชันเป็นที่รู้จักในฐานะฟังก์ชันของเชลล์และไม่ถูกตีความว่าเป็นชื่อของโปรแกรมภายนอก คำจำกัดความของฟังก์ชันเชลล์จะต้องปรากฏในสคริปต์ก่อนที่จะเรียก

เราจะเพิ่มคำจำกัดความของฟังก์ชันเชลล์ขั้นต่ำลงในสคริปต์ของเรา:



#! / bin / ทุบตี


# โปรแกรมออกหน้าข้อมูลระบบ


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

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


report_uptime () { กลับ

}


report_disk_space () { ส่งคืน

}


report_home_space () { กลับ

}


แมว << _EOF_

$TITLE

$TITLE

$TIMESTAMP

$(report_uptime)

$(รายงาน_disk_space)

$(report_home_space)

#! / bin / ทุบตี


# โปรแกรมออกหน้าข้อมูลระบบ


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

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


report_uptime () { กลับ

}


report_disk_space () { ส่งคืน

}


report_home_space () { กลับ

}


แมว << _EOF_

$TITLE

$TITLE

$TIMESTAMP

$(report_uptime)

$(รายงาน_disk_space)

$(report_home_space)


_อีโอเอฟ_

_อีโอเอฟ_


ชื่อฟังก์ชันของเชลล์ใช้กฎเดียวกันกับตัวแปร ฟังก์ชันต้องมีอย่างน้อยหนึ่งคำสั่ง NS กลับ คำสั่ง (ซึ่งเป็นทางเลือก) เป็นไปตามข้อกำหนด


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