bash – 术语之间的区别:“选项”,“参数”和“参数”?

这些术语之间有什么区别:“选项”,“参数”和“参数”?在手册页中,这些术语通常似乎可以互换使用.
命令被拆分为名为arguments的字符串数组.参数0(通常)是命令名,参数1,命令后面的第一个元素,依此类推.
$ls -la /tmp /var/tmp
arg0 = ls
arg1 = -la
arg2 = /tmp
arg3 = /var/tmp

选项是修改命令行为的文档类型的参数,例如,-l通常表示“long”,-v verbose. -lv是在单个参数中组合的两个选项.还有很长的选项,比如–verbose.顾名思义,选项通常是可选的.然而,有一些命令具有矛盾的“强制选项”.

$ls -la /tmp /var/tmp
option1= -l
option2= -a

参数是一个参数,它为命令或其中一个选项提供信息,例如:在-o文件中,file是-o选项的参数.与可能的值在程序中硬编码的选项不同,参数通常不是这样的,用户可以自由地使用适合他/她需要的任何字符串.如果您需要传递看起来像一个选项但不应该被解释为的参数,您可以使用双短划线将其与命令行的开头分开: – .

$ls -la /tmp /var/tmp
parameter1= /tmp
parameter2= /var/tmp

$ls -l -- -a
option1    = -l
parameter1 = -a

最后,有一些子命令,也称为函数/(低级)命令,它们与“元命令”一起使用,它嵌入了多个单独的命令,如busyBox,git,apt-get,openssl等.使用它们,您可以在子命令之前使用全局选项,并在子命令之后使用子命令特定选项.与参数不同,可能的子命令列表在命令本身中是硬编码的.例如.:

$busyBox ls -l
command            = busyBox
subcommand         = ls
subcommand option1 = -l

$git --git-dir=a.git --work-tree=b -C c status -s
command            = git
command option1    = --git-dir=a.git
command option2    = --work-tree=b
command option3    = -C
subcommand         = status
subcommand option1 = -s

请注意,某些命令(如test,tar,dd和find)具有比前面描述的更复杂的参数解析语法,并且可以将其部分或全部参数解析为表达式,操作数,键和类似的命令特定组件.

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...