แก้ไข:มันได้รับการชี้ให้เห็นว่าสไตล์นี้เป็น GNU-ism และ Unixes ที่ไม่ใช้ GNU นั้นมีแนวโน้มที่จะใช้ไวยากรณ์แบบเส้นประเดียว (โดยเฉพาะอย่างยิ่งตัวแปร OS X และ BSD)
แม้จะเป็นสถานะ GNU-ism แต่โปรแกรม Unix สไตล์ใหม่ที่เขียนขึ้นใช้สไตล์นี้:
--long-option
สำหรับชื่อตัวเลือกแบบยาว
-s
สำหรับตัวเลือกสั้น ๆ (หนึ่งอักขระ)
-abc
สำหรับตัวเลือกสั้น ๆ หลายรายการโดยไม่มีอาร์กิวเมนต์ (หนึ่งตัวอักษรต่อตัวเลือก)
- ตัวเลือกที่มีข้อโต้แย้ง:
--long arg
หรือ--long=arg
สำหรับตัวเลือกยาว
-s arg
, -sarg
หรือ (ขยะ) -s=arg
สำหรับตัวเลือกที่สั้น สิ่งนี้สามารถรวมกับตัวเลือกสั้น ๆ อื่น ๆ ตราบใดที่มีเพียงข้อสุดท้ายเท่านั้นที่มีข้อโต้แย้ง
- ตัวเลือก "semantic" เดียวกันนั้นสามารถมีนามแฝงได้หลายตัวโดยส่วนใหญ่จะเป็นชื่อสั้น ๆ
ใครก็ตามที่ใช้เปลือก Linux ในระยะเวลาใดก็ตามควรทำความคุ้นเคยกับสไตล์นี้1ดังนั้นจึงมีหลักการของความประหลาดใจน้อยที่สุด การอนุญาตให้จัดกลุ่มตัวเลือกสั้น ๆ หลายรายการโดยไม่คลุมเครือกับตัวเลือกแบบยาวก็ดีเช่นกัน
1ตัวอย่างเช่นบางส่วนของโปรแกรมที่ใช้รูปแบบนี้ (บนเครื่อง Linux ของฉัน): ls
, grep
, man
, sed
, bash
ฯลฯ ( แก้ไข:เหล่านี้จะเห็นได้ชัดว่า GNU-ISMS แม้ว่า BSD และ OS X เครื่องไม่ได้ใช้รูปแบบนี้)
มีห้องสมุดหลายแห่งที่สามารถแยกวิเคราะห์สิ่งนี้สำหรับคุณ (ที่รู้จักกันดีว่าเป็นการนำGNopของgetopt ไปใช้ ) ต้องการให้คุณระบุว่ามีตัวเลือกสั้นและยาวอะไรบ้างไม่ว่าพวกเขาจะโต้แย้งกันและจะทำอย่างไรเมื่อ พบตัวเลือก (และแน่นอนสิ่งที่ต้องทำสำหรับข้อโต้แย้งตำแหน่งคือคนที่ไม่ได้เริ่มต้นด้วย-
และไม่ได้ขัดแย้งกับตัวเลือกก่อนหน้า)
find
เป็นโปรแกรมที่เก่ามาก (หรืออาจเป็นไปได้มากกว่า: เวอร์ชันที่เขียนใหม่ของโปรแกรมเก่ามาก) ที่ไม่สามารถเปลี่ยนได้อย่างง่ายดายเพื่อใช้ไวยากรณ์บรรทัดคำสั่งใหม่ สคริปต์จำนวนมากเกินไปจะแตกและผู้ใช้จำนวนมากที่เคยใช้ไวยากรณ์เก่าจะบ่น javac
มีแนวโน้มว่าจะได้รับอิทธิพลจากgcc
และเพื่อน ๆ เช่นกันซึ่งตามด้วยไวยากรณ์เก่าด้วยเหตุผลทางประวัติศาสตร์