作者hijkxyzuw (i,j,k) ×(x,y,z)
看板Linux
标题Re: [问题] 有时-version,有时--version
时间Wed Aug 30 15:22:26 2017
如果你写过程式, 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
我一定是太无聊才会打这篇
--
+------+
| 胡 | 不要因为伟人的照片。
| |
| 适 | 就轻易相信文字内容。
+------+
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.116.102.187
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Linux/M.1504077749.A.CFB.html
※ 编辑: hijkxyzuw (140.116.102.187), 08/30/2017 15:26:44
1F:→ kenduest: 一般目前开发若要取 command 参数,若以 c 程式库来说 08/30 15:37
2F:→ kenduest: 一般用getopt() 来处理,在 bash script 也可以用getopt 08/30 15:38
3F:推 OSDBNetwork: 太无聊才会打这篇 XD 08/30 16:41
4F:推 ddtsatan: 推 08/30 19:26
5F:推 andrew43: 看手册无敌。谢谢分享。 08/30 20:21
6F:→ MOONRAKER: 了解getopt()卡实在 不用瞎子摸象 08/30 23:15
7F:推 Neisseria: 推 getopt 08/31 07:43
记得之前写一个 script ,
想要有功能是如果某选项不带参数,
就视参数为预设值。
然後 getopt 好像做不到,就没有用。
例如:
show # 列出所有结果
show -c 20 # 列出最後 20 笔
show -c # 列出最後 10 笔, 10 为预设值
※ 编辑: hijkxyzuw (140.116.102.187), 08/31/2017 11:14:54
8F:推 Bencrie: 做得到啊,前几天才写过 08/31 11:51
9F:→ Bencrie: 带几个参数就用 shift 控制 08/31 11:52
10F:→ dou0228: 可以阿,getopt man page 就有写了 08/31 12:08