Command-Line
命令行選項是否在選項名稱和值之間使用等號?
僅
kubectl
作為一個例子,我注意到kubectl run --image nginx ...
和
kubectl run --image=nginx ...
兩者都有效。
對於一般的命令行程序,是否有關於選項名稱和值之間是否允許/需要等號的規則?
通常,如何解釋命令行參數的實現完全由程序員自行決定。
也就是說,在許多情況下,“長”選項的值(例如用 引入)在選項名稱和值(即)之間
--option_name
指定一個flag 和 value 帶有空格,例如, 或根本不使用分隔符(如)。=``--option_name=value``-o value``-oValue
GNU date 實用程序手冊頁中的一個範例:
-d, --date=STRING display time described by STRING, not 'now'
-f, --file=DATEFILE like --date; once for each line of DATEFILE
如您所見,當使用“短”形式(即
-d
)時,該值將與選項開關用空格隔開,但=
在使用“長”形式(即--date
)時,則由一個空格隔開。編輯
正如 Stephen Kitt 所指出的,GNU 編碼標準推薦使用
getopt
和getopt_long
解析命令行選項。狀態的手冊頁getopt_long
:長選項可以採用形式為
--arg=param
或的參數--arg param
。因此,使用該函式的程序將接受這兩種形式。