此命令行中有多少个参数?
[me@localhost]$ ls -isw 40 /usr
Run Code Online (Sandbox Code Playgroud)
有人说只有一个,/usr因为40是wswitch的参数而不是命令,有人说是两个,因为除了命令和开关之外的所有东西都被认为是一个参数,询问“命令的参数”或“开关的参数”。
哪一个是正确的?
有三个参数:-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 次 |
| 最近记录: |