คำถามติดแท็ก shopt

7
ตั้งค่าและเลือกซื้อ - สองทำไม
setและshoptเป็นทั้งบิวด์เชลล์ที่ควบคุมตัวเลือกต่าง ๆ ฉันมักจะลืมว่าตัวเลือกใดถูกตั้งค่าตามคำสั่งใดและตัวเลือกใดที่ตั้งค่า / ไม่ปลอดภัย ( set -o/+o, shopt -s/-u) เหตุใดจึงมีสองคำสั่งต่างกันที่ดูเหมือนจะทำสิ่งเดียวกัน (และมีข้อโต้แย้งต่าง ๆ ให้ทำ) มีวิธีใด / ตัวย่อช่วยจำให้จำว่ามีตัวเลือกใดบ้างที่ใช้คำสั่งใด?
72 bash  settings  shopt 

5
ฉันจะแสดงรายการตัวเลือก bash'es สำหรับเชลล์ปัจจุบันได้อย่างไร
ตัวบุกรุก bash นั้นมีตัวเลือกเช่น บรรทัดที่ 22-23 ของหน้า man ของ bash: OPTIONS All of the single-character shell options documented in the description of the set builtin command can be used as options when the shell is invoked. In addition, bash interprets the following options when it is invoked: -c ... -i ... …
27 bash  shopt 

3
ฉันจะป้องกันไม่ให้ตัวเลือก 'shopt' ไม่สนับสนุนการทำให้เกิดข้อผิดพลาดใน. bashrc ของฉันได้อย่างไร
ฉันทำงานในสภาพแวดล้อมที่ค่อนข้างหลากหลายซึ่งฉันอาจใช้ Bash รุ่นต่างๆในโหนด HPC, VM หรือเวิร์กสเตชันส่วนตัวของฉัน เนื่องจากฉันใส่สคริปต์การเข้าสู่ระบบใน repo Git ฉันต้องการใช้ (ish) เดียวกัน.bashrcทั่วกระดานโดยไม่ต้อง "ถ้าโฮสต์นี้แล้ว ... " - ประเภทความยุ่งเหยิง ผมชอบการทำงานเริ่มต้นของการทุบตี≤ 4.1 ที่ขยายcd $SOMEPATHเข้าไปในcd /the/actual/pathเมื่อกดTabคีย์ ในทุบตี 4.2 และสูงกว่าที่คุณจะต้องshopt -s direxpandเปิดใช้งานลักษณะการทำงานนี้และที่ไม่ได้เป็นใช้ได้จนกว่า 4.2.29 นี่เป็นเพียงตัวอย่างเดียว shoptตัวเลือกอื่นที่เกี่ยวข้องอาจเป็นไปได้complete_fullquote(แม้ว่าฉันไม่ทราบว่าสิ่งที่มันทำ) อาจมีการเปลี่ยนแปลงพฤติกรรมเริ่มต้นที่ v4.2 แต่direxpandไม่ได้รับการยอมรับจากรุ่นก่อนหน้าทุบตีและถ้าผมพยายามที่จะshopt -s direxpandอยู่ในของฉัน.bashrcที่ส่งผลให้เกิดข้อผิดพลาดถูกพิมพ์ไปยังคอนโซลครั้งที่ผมเข้าสู่โหนดกับเก่าทุบตีทุก: -bash: shopt: direxpand: invalid shell option name สิ่งที่ฉันต้องการจะทำคือล้อมรอบเงื่อนไขshop -s direxpandเพื่อเปิดใช้งานตัวเลือกนั้นใน Bash> 4.1 อย่างแข็งแกร่งโดยไม่ต้อง chashing เวอร์ชันเก่าของ …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.