2017-02-12 19 views
1

我剛剛注意到動態樣式命令參數的一個模式(在git和CommandLineParser庫中爲.NET),並且想知道是否有人可以確認:關於命令行動詞參數的約定-a vs --arg

myprog dothis -a "someArg"

  • -a
  • --arg

什麼是單短線-PREF之間的區別ix和雙連字符前綴?對於單字母參數說明符,單個破折號前綴是否始終爲單個字母參數說明符,其中雙重破折號前綴總是用於參數的「長名稱」?

是否有正式的會議推動這一點,或者它是一個普遍接受的非正式的做法? (或者我什麼都沒做?)

只是好奇......我從來沒有注意到在git中的模式,CommandLineParser文檔非常薄,一些博客文章或其他牽連慣例。

(對於這個問題......這是什麼風格的動詞/ ARGS甚至叫我似乎無法找到太多就可以了什麼?)

回答

1

從維基百科:https://en.wikipedia.org/wiki/Command-line_interface

選項公約在類Unix系統中

在類Unix系統中,ASCII連字符減號開始選項;新的 (和GNU)約定是使用兩個連字符,然後使用一個詞(例如--create) 來標識選項的使用,而舊約定(仍然可用作常用選項的選項)將使用一個連字符然後是一個字母(例如-c);如果一個連字符後跟兩個或多個字母,則可能意味着正在指定兩個選項,或者它可能意味着第二個和後續字母是第一個選項的參數(如 文件名或日期)。無下列字母

兩個連字符減號字符( - )可以 指示剩餘的參數不應當作爲 選擇,這例如是有用的,如果一個文件名本身與 開始一個連字符,或者如果進一步處理參數是指內部命令(例如, sudo)。雙連字符短語有時也用作前綴「long 選項」的前綴,其中使用了更多描述性選項名稱。這是GNU軟件的一個常見功能。 getopt函數和程序,以及getopts命令通常用於解析命令行選項。

+1

完美,這正是我試圖找到。 – jleach