有時-version,有時--version - Linux

Table of Contents

如果你寫過程式, C 、 bash 、 perl 隨便,
就知道在程式裡都是收到一個文字陣列。

像 ./abc -a b --color=always "my file.txt"
你收到的就是:
['./abc', '-a', 'b', '--foo=bar', '-version', 'my file.txt']
一切看程式怎麼寫。

有幾種寫法,老程式會用單字母,
要接其它就直接寫在後面,不能有空格:
./foo -a -Fmyfile.txt

大部份不能連寫:
./foo -aF


比較好的慣例是長選項用 -- ,短選項用 - 。
選項有參數就用空格隔在後面,
避免和選項連寫混滛:

iconv -i big5 -o UTF-8
iconv -li big5

現在好像如果是較複雜的命令像 git 有子命令的,
就變成 git status ,
以前 dpkg 是 dpkg -i ,apt 就變 apt install 。

現在有附加參數的命令多可以空隔,
長選項有用等號也用有空格的。

grep --color=always
dpkg --install foo.deb


長選項也用 - 好像是 bsd 風格?
convert -rotate 90

有的還有用到加號,一時忘記有什麼範例。
./foo +border -background

常見的通用選項有 -h --help ,
一般這兩個會保留,當然 -help 也是有。
version 會用 -V --version , -version 也有。

7z 和 unrar 的風格:
7z a new.7z a.txt b.txt
7z x file.7z
7z h # 顯示說明

dd 的風格:
dd if=/dev/sda of=/dev/sdb

※ 引述《dharma (達)》之銘言:
: git --version
: unity --version
: 上面是兩個橫槓
: X -version:查X Server版本
: 上面是一個橫槓
: 查版本的指令
: 有的是--version,有的是-verison
: 有什麼規則嗎
: Thanks

我一定是太無聊才會打這篇

--

+------+
| 胡 | 不要因為偉人的照片。
| |
| 適 | 就輕易相信文字內容。
+------+

--

All Comments

Caroline avatarCaroline2017-09-03
一般目前開發若要取 command 參數,若以 c 程式庫來說
Faithe avatarFaithe2017-09-04
一般用getopt() 來處理,在 bash script 也可以用getopt
Liam avatarLiam2017-09-06
太無聊才會打這篇 XD
Jack avatarJack2017-09-10
Dorothy avatarDorothy2017-09-13
看手冊無敵。謝謝分享。
Noah avatarNoah2017-09-14
了解getopt()卡實在 不用瞎子摸象
Heather avatarHeather2017-09-17
推 getopt
Mary avatarMary2017-09-21
做得到啊,前幾天才寫過
Kama avatarKama2017-09-23
帶幾個參數就用 shift 控制
Callum avatarCallum2017-09-25
可以阿,getopt man page 就有寫了