ระเบียบ / มาตรฐานเกี่ยวกับการใช้เครื่องมือจัดฟันแบบโค้งรอบตัวเลือก


10

man page สำหรับ tar ในส่วน Arch Linux SYNOPSISเริ่มต้นด้วย:

tar {A|c|d|r|t|u|x}[GnSkUWOmpsMBiajJzZhPlRvwo] [ARG...]

ฉันเข้าใจอย่างถ่องแท้ว่าในสถานการณ์เช่นนี้หมายความว่าต้องเลือกตัวเลือกอย่างใดอย่างหนึ่งในเครื่องหมายปีกกาเนื่องจากบอกว่าลงไปอีกในหน้าคน มีมาตรฐานหรือแบบแผนบางอย่างเกี่ยวกับการใช้{}รอบรายการตัวเลือกที่ไม่เกิดร่วมกันหรือไม่?

ทั้งหมดที่ฉันสามารถหาได้คือบทช่วยสอนกลุ่มของผู้ใช้manตั้งแต่ปี 1998 ที่มีข้อความว่า:

ตัวเลือกบางตัวจะมีรายการตัวเลือกที่ จำกัด รายการของตัวเลือกจะถูกคั่นด้วยเครื่องหมายจุลภาคและใส่ระหว่างเครื่องหมายวงเล็บ

{choice1, choice2} {ใช่, ไม่}

ดูเหมือนว่าทุกการประชุม (เช่นนี้จาก Open Group ) หรือหน้าคนอธิบายเพียงวงเล็บเหลี่ยม ([) หรือเส้นแนวตั้ง (|)


1
โดยปกติฉันคิดว่า<>เป็นภาคบังคับ แต่ฉันคิดว่ามันสงวนไว้สำหรับการขัดแย้งซึ่งตรงข้ามกับตัวเลือก ตัวนับ: GNP tar manpage ของอูบุนตู ( manpages.ubuntu.com/manpages/trusty/en/man1/tar.1.htmlสำหรับหนึ่งคน) ไม่ใช้ฟอร์มนี้และlinux.die.net/man/ 1 / น้ำมันดินหรือDebian ฉันคิดว่าคุณอาจกำลังดู manpage ของ BSD tar ดังนั้นหากมีการประชุมอยู่มันอาจเป็นเรื่อง BSD
muru

ต้นน้ำสำหรับซุ้มประตูที่มนุษย์หน้าจะman7.org , หน้า tar เป็นเหมือนกับman7.org/linux/man-pages/man1/tar.1.html
umbasa

2
ฉันมักจะคิดว่าไวยากรณ์บรรทัดคำสั่งออกมาจากENBFแต่ {} ใน ENBF หมายถึงสิ่งที่ตรงกันข้าม (การทำซ้ำของอาร์กิวเมนต์แทนตัวเลือกที่เป็นไปได้เช่นเดียวกับในสถานการณ์ tar) ผมพยายามที่จะ google {} ไวยากรณ์โดยมีจุดประสงค์เพื่อหน้าต่างและดูเหมือนว่า {} เป็นเรื่องธรรมดามากบน windows ก็ยังมีคำอธิบายในTechNet เฮ้อฉันอาจจะพยายามอย่างหนักเพื่อค้นหาความจริง
umbasa

คำตอบ:


5

นี่เป็นคำถามที่ยอดเยี่ยม (และยังคงเปิดอีกหลายปีต่อมา) ฉันคิดว่าคำตอบได้รับการตอบรับอย่างเป็นทางการแล้วในเอกสาร Googleนี้:

  • รายการที่ต้องการ: ไม่มีวงเล็บ
  • รายการพิเศษที่ไม่จำเป็นซึ่งกันและกันซึ่งเป็นทางเลือก: วงเล็บเหลี่ยมคั่นด้วยไพพ์
  • รายการพิเศษที่จำเป็นร่วมกัน: วงเล็บปีกกา, คั่นด้วยไพพ์

1

มีมาตรฐานหรือแบบแผนบางอย่างเกี่ยวกับการใช้ {} รอบรายการของตัวเลือกที่ไม่เกิดร่วมกันหรือไม่?

ฉันกำลังค้นคว้าความสำคัญของความหมายของตัวเลือกที่ระบุไว้ในวงเล็บปีกกา ({}) vs ตัวเลือกที่ระบุในวงเล็บเหลี่ยม ([]) เมื่อฉันเจอคำถามของคุณ มันเป็นแหล่งข้อมูลเดียวที่ฉันพบว่ามีประโยชน์เมื่อเทียบกับสิ่งที่ฉันพยายามทำความเข้าใจนั่นคือเหตุผลว่าทำไมตัวเลือกที่ระบุไว้ในวงเล็บปีกกา

ตามที่คุณเขียน:

ฉันเข้าใจอย่างถ่องแท้ว่าในสถานการณ์เช่นนี้หมายความว่าจะต้องมีหนึ่งในนั้น ...

การอ่านหน้า man สำหรับ netstat ฉันได้เข้าใจว่าตัวเลือกนั้นเป็นตัวเลือกที่พร้อมใช้งานสำหรับคำสั่งที่ต้องใช้ / ระบุไว้ก่อนที่จะใช้ตัวเลือกอื่น ๆ ที่อาจแสดงรายการด้วยคำสั่ง คั่นด้วยแถบแนวตั้งสามารถใช้

ตัวอย่างด้านบนสามารถพบได้ใน man page สำหรับคำสั่ง netstat:

netstat {--route | -r} [address_family_options] [--extend | -e [- ขยาย | -e]] [- verbose | -v] [- ตัวเลข | -n] [- ตัวเลข - โฮสต์ ] [- ตัวเลข - พอร์ต] [- ตัวเลข - พอร์ต] [- ต่อเนื่อง | -c] [ล่าช้า]

ที่มา: netstat (8) | หน้าลินุกซ์

ในสาระสำคัญหนึ่งสามารถใช้หนึ่ง --route หรือ -r (หมายถึงสิ่งเดียวกัน) แต่ตัวเลือกจะต้องนำหน้าตัวเลือกอื่น ๆ ที่ระบุไว้

ฉันใช้เวลาในการตอบคำถามของคุณเพียงเพราะคำถามยังคงเปิดอยู่ แต่สำหรับฉันคุณตอบคำถามของคุณเองแล้ว :)

การประชุมเป็นเพียงการปฏิบัติที่จัดตั้งขึ้นอย่างกว้างขวาง ไม่ว่าจะระบุไว้อย่างชัดเจนหรือไม่ความจริงที่ว่าคุณพบว่าเอกสารของมนุษย์เป็นประจำในรูปแบบนี้บ่งชี้ว่ามีการจัดตั้งอนุสัญญา

มี "มาตรฐาน" หรือไม่ สำหรับฉันนั้นขึ้นอยู่กับคำจำกัดความที่คุณต้องการใช้สำหรับ "มาตรฐาน" สำหรับฉันมีเล็กน้อยถึงไม่มีความแตกต่างระหว่างความหมายของคำว่าแบบแผนและมาตรฐานในแง่ที่ว่าเรากำลังใช้คำนี้ ในแง่นี้ฉันถือว่าคำสองคำนี้หมายถึงบางสิ่งตามแนวของ "สิ่งที่ตกลงกันและใช้และยอมรับว่าเป็นบรรทัดฐาน"

ขอบคุณสำหรับเวลาที่ช่วยให้ฉันเข้าใจอนุสัญญา / มาตรฐานนี้

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