Skip to content

Latest commit

 

History

History
38 lines (26 loc) · 3.86 KB

cli.md

File metadata and controls

38 lines (26 loc) · 3.86 KB

Command Line Interface (CLI)

Command, Subcommand, Argument, Parameter, Global/Subcommand-specific Option ??

  • Anatomy of a shell CLI - Command-line interface - Wikipedia #ril
    • CLI 通常符合 prompt command param1...paramN 的樣式,其中 param1...paramN 是 OS 會傳給 command 的 (optional) parameters,區分為 argument 與 option。
  • Parameters and arguments - Parameter (computer programming) - Wikipedia 通常 parameter 是指 function definition 中的 variable,而 argument 則是指 function call 實際傳入的 input。
  • bash - Difference between terms: "option", "argument", and "parameter"? - Stack Overflow jlliagre: #ril
    • 一個 command 可以拆解成 arguments,其中 argument 0 是 command 本身,後面接著 argument 1, 2 ...
    • Option 也是一種 argument,主要用來改變 command 的行為,顧名思義 option 通常是 optional (但有些 command 則很矛盾地要求 mandatory option)。例如 -l (long)、-v (verbose) 或 -lv 將兩者合併,也有像 --verbose 的長版 (long option)。
    • Parameter 是指提供給 command 或 option 的 information,例如 -o filefile 就是 -o option 的 parameter,不像 option 會寫死在程式裡,parameter 通常使用者可以決定要傳什麼。
    • 如果你要傳一個 parameter 但又不想被解讀為 option,可以在 parameter 前明確加上 --,把前面的 options 分隔開來。例如 ls -l -- -a,只有一個 option -a,與一個 parameter -a
    • Subcommand 的狀況略有不同 -- command [global-options] subcommand [subcommand-specific-options] [params],在 command 與 subcommand 間可能有 global option,而 subcommand 也可以有自己的 option,例如 git --git-dir=a.git --work-tree=b -C c status -s,其中 gitstatus 分別是 command 與 subcommand,所以 global option 是 --git-dir=a.git --work-tree=b -C c,subcommand 的 option 則是 -s

Design, UX ??

Python ??

其他方案:

Testing