此命令行中有多少个参数?
[me@localhost]$ ls -isw 40 /usr
Run Code Online (Sandbox Code Playgroud)
有人说只有一个,/usr
因为40
是w
switch的参数而不是命令,有人说是两个,因为除了命令和开关之外的所有东西都被认为是一个参数,询问“命令的参数”或“开关的参数”。
哪一个是正确的?
有三个参数:-isw
,40
和/usr
。
当解析命令行参数,GNUls
工具会看到三个选项:-i
,-s
,和-w
该40
是一个选项参数的-w
选项。
所述/usr
在端部是一个操作数(均未一种选择,也不是一个选项参数)。
一个论点是
在 shell 命令语言中,传递给实用程序的参数相当于
argv
由exec
函数之一创建的数组中的单个字符串。参数是命令名称后面的选项、选项参数或操作数之一。
这就是告诉我们ls -isv 40 /usr
是一个带有三个参数的命令。如果ls
是我们自己编写的 shell 脚本,那么该$#
脚本中特殊变量的值将3
是以特定方式调用脚本时的值。
一个选项是
命令的参数,通常用于指定实用程序默认行为的更改。
不带选项参数的选项可以与以下选项一起编写为单个参数,即-i -s -w 40
可以写为-isw 40
. 该命令ls -i -s -w 40 /usr
将有五个参数。
一个选项参数是
遵循某些选项的参数。在某些情况下,选项参数包含在与选项相同的参数字符串中 - 在大多数情况下,它是下一个参数。
所以,-w 40
可以写成-w40
,在这种情况下,命令ls -isw40 /usr
只有两个单独的参数。
一个操作数是
命令的参数,通常用作向实用程序提供完成其处理所需的信息的对象。操作数通常遵循命令行中的选项。
这里的定义来自POSIX。
还要注意以下可能是真的,如果ls
公用事业有完全不同的语义:
sw
本来是一个选项参数的-i
选项(或者w
可能是一个选项参数-s
),并都40
与/usr
本来的操作数。
归档时间: |
|
查看次数: |
219 次 |
最近记录: |