Shell
shell 腳本和函式的通用標誌名稱和標準
我一直在調整在我的 shell 腳本和自定義函式中使用 GETOPT 和 GETOPTS,以使我能夠更靈活地使用我創建的函式。在使用了一些 UNIX 函式之後,我意識到其中很多都使用了類似的語法。
-v
用於詳細輸出和-R/-r
遞歸功能的範例。我查看了實用程序約定的 POSIX 標準指南和基於 C 的實用程序的 GNU 選項表。試圖了解這是否是設計使然,以及是否有任何我應該遵循的規則。
我的問題是:
是否有任何具有指定含義的特定選項標誌?
我對自己的選擇有多少自由,哪些規則我不應該違反?
我應該避免給出類似
-t
和-T
不同含義的選項,還是應該為了簡單起見將它們組合在一起?什麼情況下應該使用大寫或小寫字母?
沒有快速而堅定的規則,甚至沒有共同的約定。最多有幾個選項在一些常用實用程序中一致使用——但不是在所有常用實用程序中使用。
這裡有一些常見的字母——但請記住,這些絕不是普遍的約定。如果您具有以下描述的功能之一,則最好使用相應的選項。如果其中一個選項對您的實用程序沒有意義,請隨意將其用於其他用途。
-c COMMAND
或-e COMMAND
:執行命令。例子:sh -c
,perl -e
.-d
或-D
:調試。-f
:強制,不要要求確認危險動作。-h
:help — 但許多實用程序只辨識長選項--help
或根本不辨識。範例:Linuxgetfacl
,mount
. 反例:GNUls
,du
,df
(沒有簡短的選擇,-h
是人的大小),less
(-?
是幫助,-h
是別的東西)。-i
: 提示確認(互動式)。-n
: 不要採取行動,只是列印會做什麼。範例:make
。-r
或-R
:遞歸。-q
或-s
:安靜或沉默。範例:grep -q
表示不顯示輸出,grep -s
表示不顯示錯誤資訊。-v
: 冗長。-V
: 顯示版本資訊。傳統上使用小寫字母,而大寫字母之所以被使用,是因為只有 26 個小寫字母。有時大寫字母與相應的小寫字母有關(例如:GNU
grep -h/-H
,ssh -x/-X
,cp -r/-R
),有時則不然。