เปลือกเป็นส่วนติดต่อพื้นฐานสำหรับการป้อนคำสั่งบนระบบลีนุกซ์ ด้วยคุณสามารถป้อนคำสั่งได้โดยตรงหรือระบุไฟล์ (สคริปต์) ที่มีลำดับคำสั่งที่จะเรียกใช้ เปลือกหอยจัดอยู่ในลำดับชั้นและเปลือกใด ๆ สามารถสร้างเปลือกใหม่ได้ เปลือกใหม่ถือเป็นขั้นตอนย่อยสำหรับย่อย ๆ ของเปลือกแม่ซึ่งจะสร้างขึ้นมา
โดยค่าเริ่มต้น subshell จะขึ้นอยู่กับ parent ในแง่ที่ว่าถ้า process parent ถูกยุติลง subshell ก็จะยุติด้วย เอาท์พุทใด ๆ จะถูกส่งผ่านจากเปลือกย่อยไปยังเปลือกแม่
วิธีการสร้าง Subshell
ในสคริปต์เชลล์ Bash คุณจะสร้าง subshell โดยใช้สัญกรณ์วงเล็บ:
ในตัวอย่างวนรอบในขณะอยู่ในวงเล็บซึ่งทำให้มันถูกเรียกใช้ในเปลือกย่อยของเปลือกที่มีการเรียกใช้ไฟล์สคริปต์
การเรียกใช้ Subshell ในเบื้องหลัง
ถ้าคุณไม่ระบุว่า subshell จะถูกเรียกใช้ในแบ็คกราวน์เปลือกต้นแบบรอให้ subshell เสร็จสิ้นก่อนดำเนินการต่อกับส่วนที่เหลือของสคริปต์ อย่างไรก็ตามถ้าคุณต้องการเรียกใช้ subshells แบบขนานคุณสามารถเรียกใช้งานได้ในแบบเบื้องหลังซึ่งสามารถทำได้โดยใช้อักขระเครื่องหมายกลางต่อจากการแสดงออกของซับสเปรดตามที่แสดงที่นี่:
กำลังเรียกใช้หลาย Subshells ในแบบขนาน
ถ้าคุณสร้างหลาย subshells เป็นกระบวนการพื้นหลังคุณสามารถเรียกใช้งานแบบขนาน โดยปกติระบบปฏิบัติการจะใช้โปรเซสเซอร์หรือคอร์ที่แตกต่างกันสำหรับแต่ละกระบวนการและกระบวนการย่อยโดยสมมติว่ามีโปรเซสเซอร์หรือแกนประมวลผลอย่างน้อยหนึ่งตัวเนื่องจากมีกระบวนการ มิฉะนั้นงานจะถูกกำหนดให้กับโปรเซสเซอร์หรือแกนเดียวกัน ในกรณีนี้โปรเซสเซอร์หรือแกนจะสลับระหว่างงานที่มอบหมายไปเรื่อย ๆ จนกระทั่งงานเสร็จสิ้น ตัวอย่างต่อไปมีสองโพรเซส คนแรกนับตั้งแต่ 1 ถึง 99 คนและคนที่สองนับตั้งแต่ 1000 ถึง 1099
ใช้คำสั่งรอเพื่อบอกกระบวนการหลักเพื่อรอให้กระบวนการย่อยดำเนินการเสร็จสิ้นก่อนดำเนินการกับส่วนที่เหลือของสคริปต์:
ใช้สำหรับ Subshells
Subshells มีประโยชน์เมื่อจำเป็นต้องใช้คำสั่งในสภาพแวดล้อมหรือไดเรกทอรีเฉพาะ ถ้าคำสั่งแต่ละคำสั่งทำงานในซับสเกลที่แตกต่างกันไม่มีความเสี่ยงใดที่การตั้งค่าตัวแปรจะถูกผสมขึ้น เมื่อเสร็จสิ้นการตั้งค่าและไดเร็กทอรีปัจจุบันจะไม่จำเป็นต้องได้รับการกู้คืนเนื่องจากสภาพแวดล้อมของโพรเซสย่อยของกระบวนการย่อยจะไม่ได้รับผลกระทบใด ๆ
Subshells สามารถใช้ในคำจำกัดความของฟังก์ชันเพื่อให้สามารถทำงานได้หลายครั้งด้วยพารามิเตอร์ที่แตกต่างกัน