回覆列表
-
1 # 李老師tome
-
2 # SuperBean
不用理解,記住就好,命令列引數跟程式碼規範一樣都是人為設定的,就得這麼寫,非要鑽牛角尖沒多大意思。如果每個命令開發者都天馬行空地編寫程式碼,沒有一套統一的標準,豈不是亂了套,比如我自創一套非主流的命令引數寫法a.exe :)b :)c :)d也是可以的。久而久之,就形成了三大主流風格的命令列引數:
Unix/Posix風格。引數前面加“-”,一個字母就是一個引數,常見的ps -aux其實寫成ps -a -u -x是一個效果,表示三個引數。GNU風格。引數前面加“--”,因為有些命令太宏大了,26個字母用完了還不夠,必須得用單詞了。常見的ps --version或者ps --help,都表示後面只跟一個引數。BSD風格。引數前面沒有“-”,其他跟第一個風格很像,所以你這樣寫ps aux也能執行,同樣可以寫成ps a u x。前面都是以Linux下的檢視程序的命令ps作為例子,說明這個命令支援以上三種不同型別的命令列引數,也是大眾能接受的主流寫法。目前BSD風格的比較少了,正常情況-之後是簡寫,--之後是全稱。命令引數對應什麼功能其實不用記,一般-h或者--help檢視幫助文件即可。
然後也有很多非主流的,就跟學英語一樣,總有一些約定俗成不遵循語法的句子,非常討厭,最後舉一個臭名昭著的例子如下:
java -version
解釋
命令後面直接加引數(例如 dir d: ), dir預設接受d:這個為引數
命名後面加“--word”,表示指定接收與單詞名稱相同的引數
命令後面加“--w”,表示是接收引數的簡稱
示例
以下我們用一個示例來演示,我用python手寫了一個
demo.exe
後面接收命令引數,原始碼如下
第一種情況,直接輸引數,所以第一個接收到就是hello,第二個引數沒有值
第二種情況,第二個引數使用全稱,可以看到第二個引數有值
第三種情況,第二個引數使用簡稱,可以看到第二個引數也有值