อะไรคือความแตกต่างระหว่าง“ -” และ“ -” ในคำสั่ง?


13

ฉันมักจะเห็นเส้นประหนึ่ง-หรือสองเส้นประ--ตามด้วยคำสั่ง linux หรือโปรแกรมอื่น ๆ ที่ติดตั้ง linux

ความแตกต่างระหว่างเส้นประเดียวและขีดกลางสองเท่าคืออะไร?

มันเป็นเพียงเกี่ยวกับตัวย่อ? ตัวอย่างเช่น-vหมายถึง--verboseส่วนใหญ่เวลา


คำตอบ:


15

มันเป็นเรื่องของการประชุม โปรแกรมมาตรฐาน POSIX มักจะมีตัวเลือกอักขระเดียวเท่านั้นและทั้งหมดนั้นนำหน้าด้วยเครื่องหมายยัติภังค์เดียว รุ่นที่ยาวกว่าคือการปรับปรุง GNU เพื่อความชัดเจนเท่าที่ฉันสามารถบอกได้และมักจะนำหน้าด้วยเครื่องหมายขีดคั่นคู่ คุณสามารถเห็นสิ่งนี้ได้ในไลบรารีและโปรแกรมที่ใช้ในการวิเคราะห์ตัวเลือก - getoptและgnu-getoptตามลำดับ โปรแกรมที่ไม่สอดคล้องกับ GNU และที่ไม่ใช่ POSIX อาจทำสิ่งอื่นโดยสิ้นเชิง โปรดทราบว่าคุณไม่สามารถแน่ใจได้ว่าอาร์กิวเมนต์แบบยาวอาจเหมือนกันจากโปรแกรมหนึ่งไปอีกโปรแกรมหนึ่ง -fมักจะหมายถึง--forceแต่ไม่ได้มีapt-get install(ความเข้าใจผิดที่พบบ่อย) -vอาจหมายถึงเวอร์ชัน - ตามปกติหรือ--verboseอื่น ๆ ตรวจสอบ man man หรือเอกสารอื่น ๆ เพื่อให้แน่ใจ ยังได้ดูที่บทความวิกิพีเดีย getopt ทั้งหมดนี้มาก่อนลินุกซ์โดยทศวรรษหรือมากกว่า

ddเป็นตัวอย่างของสาธารณูปโภคมาตรฐาน POSIXซึ่งไม่ได้มีตัวเลือกยัติภังค์ใด ๆที่ทุกคน findเป็นตัวอย่างคลาสสิกของยูทิลิตี้มาตรฐาน POSIXที่มีตัวเลือกคำพร้อมยัติภังค์เดียว - ตัวเลือกเกือบทั้งหมดfindมีความยาวหลายตัว psรองรับรูปแบบตัวเลือกที่หลากหลาย:

This version of ps accepts several kinds of options:

1   UNIX options, which may be grouped and must be preceded by a dash.
2   BSD options, which may be grouped and must not be used with a dash.
3   GNU long options, which are preceded by two dashes.

GNUtarยังรองรับรูปแบบตัวเลือกที่หลากหลาย

ในเรื่องของการใช้งานให้เลือกตัวเลือกแบบยาวในสคริปต์ถ้าคุณมั่นใจได้ว่าสคริปต์จะทำงานในสภาพแวดล้อมที่เข้ากันได้ - การปรับปรุงความคมชัดเป็นพรเมื่อทำการดีบั๊ก เพื่อความสะดวกในการพกพาควรเลือกใช้ตัวเลือกสั้น ๆ


คำตอบที่ดีจริงๆ ขอบคุณ.
Peng Zhang

4

โดยปกติแล้ว - ตัวเลือกสามารถถูกผูกมัดเข้าด้วยกันเช่นเดียวกับpacman -Syuที่เทียบเท่าpacman -S -y -uและ - ตัวเลือกโดยทั่วไปจะใช้พารามิเตอร์เหมือนใน./configure --prefix=/usr

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