สิ่งที่ส่งผ่านพารามิเตอร์ -xe ไปที่ / bin / bash ทำ


59

สิ่งที่ชื่อกล่าว ฉันไม่มีโชคมากในการค้นหาเอกสารที่เหมาะสมเพื่อดูว่า -xe ทำอะไรในกรณีการใช้งานต่อไปนี้:

#!/bin/bash -xe

พารามิเตอร์เหล่านั้นทำอะไรและอยู่ที่ไหนในเอกสาร


คุณกำลังพูดถึงพารามิเตอร์ที่ส่งผ่านไปยังไบนารี BASH หรือคุณกำลังพูดถึงฟังก์ชั่นและพารามิเตอร์ภายในภาษาสคริปต์ BASH หรือไม่?
Richard Keller

อ้างถึงพารามิเตอร์ที่ส่งผ่านไปยังไบนารี BASH เช่น: #! / bin / bash -xe
เชิงจินตนาการ

คำตอบ:


56

หากคุณอ่าน man page สำหรับbashคุณจะพบสิ่งต่อไปนี้ที่ด้านบนของOPTIONSส่วน:

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

และถ้าคุณอ่านเอกสารสำหรับsetคำสั่งในภายหลังในหน้าคนคุณจะพบ:

 -e ออกทันทีถ้าไปป์ไลน์ (ซึ่งอาจประกอบด้วย
 คำสั่งแบบง่ายเดียว) คำสั่ง subshell ที่อยู่ในวงเล็บ
 หรือหนึ่งในคำสั่งที่ดำเนินการโดยเป็นส่วนหนึ่งของรายการคำสั่งที่ล้อมรอบด้วย
 วงเล็บปีกกา (ดูที่ SHELL GRAMMAR ด้านบน) ออกจากสถานะไม่เป็นศูนย์ 

 -x หลังจากขยายแต่ละคำสั่งง่าย ๆ สำหรับคำสั่ง case และ
 คำสั่งเลือกคำสั่งหรือเลขคณิตสำหรับคำสั่งแสดง
 มูลค่าที่เพิ่มขึ้นของ PS4 ตามด้วยคำสั่งและ
 อาร์กิวเมนต์ที่ขยายหรือรายการคำที่เกี่ยวข้อง

กล่าวอีกนัยหนึ่ง-eทำให้การออกจากเชลล์ทันทีเมื่อใดก็ตามที่บางสิ่งส่งกลับข้อผิดพลาด (ซึ่งมักใช้ในเชลล์สคริปต์เป็นกลไกที่ไม่ปลอดภัย) และ-xเปิดใช้งานการเรียกใช้งานสคริปต์อย่างละเอียดเพื่อให้คุณสามารถเห็นสิ่งที่เกิดขึ้น


10

พิมพ์สิ่งต่อไปนี้บนคอนโซลของคุณเพื่อรับคำอธิบายของอาร์กิวเมนต์ BASH:

bash -c "help set"

ในการตอบคำถามของคุณ:

-e ออกทันทีถ้าคำสั่งออกจากสถานะไม่เป็นศูนย์

-x พิมพ์คำสั่งและอาร์กิวเมนต์ตามที่ดำเนินการ


4

จากmanpage :

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

ดังนั้นให้ดูที่ชุดบิวด์อิน



0

ที่ไหนที่ดีที่สุดในการอ่านเอกสารเกี่ยวกับพารามิเตอร์ที่ส่งผ่านไปยัง bash เช่น -x และ -e คืออะไร ฉันลองผู้ชายคนนั้นทุบตี แต่ดูเหมือนจะไม่ครอบคลุม

อ่านส่วน OPTIONS ของ basj manpage


0

ฉันใช้คู่มืออ้างอิง Bash ที่ยอดเยี่ยมเป็นเอกสารแบบครบวงจรสำหรับภาษา Bash ฉันพบว่ามันมีประโยชน์มากกว่าหน้าคน ส่วนที่เกี่ยวข้องกับคุณ (คำอธิบายของสวิตช์ -e, ​​-x สามารถดูได้ที่นี่: set builtin

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.