Posix
雙破折號仍然是長開關的 posix 標準嗎?
我讀過幾個關於雙破折號的問題:
單字元選項的單破折號,但單詞的
-
雙破折號?--
(雙破折號)是什麼意思但是,我記得 4 年前一位老師告訴我這
--
是處理長開關(如--help
or )的正確方式--color=
。今天,我使用了很多根本不遵守這條規則的命令,我能想到的最好的例子是
find
即使非常煩人的AIX find
.我的老師錯了嗎?還是規則改變了(這似乎不太可能)?最後,關於選項和或的長度
是否有任何規則?
posix``-``--
我認為POSIX 沒有定義長選項:
準則 3:每個選項名稱應該是可
移植字元集中的單個字母數字字元(alnum 字元分類)。-W(大寫-W)選項應保留給供應商選項。
不應允許多位選項。
雙破折號是 GNU 約定。
在find 的 POSIX 定義中,帶有單破折號的“長開關”不是選項的一部分,而是作為操作數給出的表達式。
find
似乎是規則的例外。實際上find
起源於 Unix 的初始實用程序開發人員組之外,因此它不符合使用“長”選項的方式。通常,只有在使用短選項和長選項成為大多數程序中的常見做法後,才會進行標準化,部分原因是某些常式或庫可用於進行選項解析(從而強制執行一些非顯式標準)。但當然,當時以不會破壞腳本的方式更改現有程序(例如)為時已晚。
find
使用雙破折號的 POSIX 合規性不如不破壞這些腳本重要。例如,向後兼容性也是為什麼
tar
可以使用或不使用破折號來指定短選項的原因。