quote
เป็นฟังก์ชั่นที่กำหนดไว้ (ที่นี่ในระบบ Debian ของฉัน แต่ฉันคิดว่ามันเหมือนกันบน Ubuntu) ในไฟล์/usr/share/bash-completion/bash_completion
ซึ่งตัวมันเองมีต้นกำเนิดมาจาก/etc/bash.bashrc
ตอนเริ่มต้นของ Bash
ฉันจะไม่ใช้ฟังก์ชั่นนี้! หากคุณต้องการเสนอราคาเพื่อให้เชลล์ใช้งานได้อย่างปลอดภัยโปรดใช้printf
กับโมดิ%q
ฟายเออร์เป็น:
printf '%q\n' "Hello my friend I like 'single quotes' as well as \"double quotes\""
ในความเป็นจริงแม้จะใช้น้อยมาก แต่ก็มีกลยุทธ์ที่ดีกว่าสำหรับสิ่งระดับสูงเช่นเราผู้ใช้มักจะทำ quote
สิ่งนี้ถูกใช้ภายในโดยสิ่งที่คลุมเครือบางอย่างที่เราไม่ต้องการแม้แต่จะรู้ นี้quote
ฟังก์ชั่นน่าจะเป็นผู้ผลิต / จัดจำหน่ายเฉพาะ (อ่าน Debian เฉพาะ) และอาจจะไม่ได้เป็นแบบพกพาที่ทั้งหมดและก็อาจจะมีการเปลี่ยนแปลงในอนาคต
แก้ไข ผมได้ตรวจสอบเพียงแค่บน Ubuntu 12.04 ระบบและquote
ฟังก์ชั่นที่กำหนดไว้ใน/etc/bash_completion
ที่มาจากตัวเองมาโดย/etc/bash.bashrc
/etc/profile
ฉันทราบได้อย่างไร ใช้ฮิวริสติกเล็กน้อย:
ตรวจสอบว่าquote
ปรากฏใน/etc/profile
:
grep '\bquote\b' /etc/profile
ไม่ไปยังขั้นตอนต่อไป
ไฟล์อะไรที่มาจาก/etc/profile
?
grep '[[:space:]]\.[[:space:]]' /etc/profile
ฉันมี$i
(ต้องมองเข้าไปในแหล่งที่มาสำหรับสิ่งที่มานี้ แต่ในกรณีนี้มันเป็นไฟล์/etc/profile.d/*.sh
ถ้ามี (และถ้าอ่านได้) และ/etc/bash.bashrc
. กำลังมองหา/etc/bash.bashrc
.
- อยู่
quote
ใน/etc/bash.bashrc
? ใช่ / ไม่ ฯลฯ