อักขระตัวแทนภายในเครื่องหมายคำพูดคู่มีอยู่หรือไม่ [ปิด]


6

ใน "BASH มาตรฐาน" สัญลักษณ์แทนที่อยู่ในเครื่องหมายคำพูดคู่หรือไม่ ตัวอย่างเช่น:

$ touch abc
$ ls "*abc*"

จะว่าหรือจะไม่ทำงานที่ทุบตี?

ฉันบอกว่า Ubuntu มาพร้อมกับตัวแปรทุบตีที่ไม่สอดคล้องกับ POSIX หรือ BASH มันเป็นเรื่องจริงเหรอ?


คุณต้องการตอบคำถามข้อใดก่อน
Ignacio Vazquez-Abrams

................... ทั้งคู่
แมตต์

สำหรับบันทึกนั้นดีกว่าที่จะถามคำถามทีละครั้ง (อาจเป็นสิ่งที่อิกนาชิโอหมายถึง)
slhck

คำตอบ:


6

คำตอบสั้น ๆ : ไม่

คำตอบยาวจากการทุบตีมนุษย์:

การใส่อักขระในเครื่องหมายคำพูดคู่จะเก็บรักษาค่าตัวอักษรของอักขระทั้งหมดภายในเครื่องหมายคำพูดยกเว้น $, `, \

ดังนั้น:

~$ touch sas
~$ ls *a*
sas
~$ ls "*a*"
ls: cannot access *a*: No such file or directory

แน่นอนเมื่อพูดถึงเครื่องหมายคำพูดคู่และเครื่องหมายดอกจันมีข้อยกเว้นอื่น: การขยายพารามิเตอร์ (เช่น: "$ *") ... แต่นั่นเป็นอีกประวัติศาสตร์

สำหรับคำถามที่สองคุณถามเกี่ยวกับเส้นประหรือไม่ dash เป็นเปลือกที่เบาสำหรับสคริปต์ ในเดเบียนและในอูบุนตูต่อส่วนขยาย (ตามเดเบียน) จะใช้นามแฝงกับ sh; มันเป็นข้อได้เปรียบที่สำคัญของ bash คือความเร็วดังนั้นมันถูกใช้เป็นค่าเริ่มต้นสำหรับสคริปต์ระบบ อย่างไรก็ตาม bash นั้นยังคงมีอยู่เป็นเชลล์แบบโต้ตอบสำหรับผู้ใช้ตามค่าเริ่มต้น

 ~$ ls -l /bin/sh 
lrwxrwxrwx 1 root root 4 2011-04-21 11:54 /bin/sh -> dash

อ้าขอบคุณ ใช่ผมก็ตระหนักถึง bin / sh / dashถูกนามแฝง แต่อย่างไรก็ตามมีบางคนที่ฉันกำลังพูดถึงบอกว่าสิ่งนี้ทำงานได้ในระบบ Red Hat ของเขา [* globs เมื่อยกมาสองเท่า - เขากล่าวว่าวิธีเดียวที่จะแน่ใจได้ว่าพวกเขาไม่ได้กลมคือการใช้เครื่องหมายคำพูดเดี่ยว] มีความคิดอะไรไหม
แมตต์

ไม่เพื่อนของคุณผิดอย่างสมบูรณ์ - ตรวจสอบคำพูดจากคนทุบตีฉันโพสต์ในคำตอบของฉัน
hmontoliu

ฉันไม่ได้บอกว่าเขาเป็นเพื่อนของฉัน: P เรามีความขัดแย้งและเขาเป็น "โปรแกรมเมอร์มา 11 ปี" และมีงานใหญ่และฉันที่เพิ่งเรียนรู้จาก google และสิ่งต่าง ๆ ตั้งแต่ฉันไม่เห็นด้วยกับเขาสิ่งนี้ คนอื่น [ซึ่งเป็นเพื่อนของเพื่อน - คนนี้คือเพื่อนของเขา] เริ่มพูดถึงว่าฉันไม่ควรปัดความรู้ของเขาออกไปเพราะเขาเป็นคนที่มีความรู้มากที่สุดในการสนทนา แต่ขอบคุณ! :)
แมตต์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.