erc*_*rch 9 command-line options arguments
我试图理解info who但完全失败了“非选项参数”这个词。有人可以用简单的话或例子向我解释这个词吗?
更新:来自“信息谁”:
如果没有给定非选项参数,`who' 会为当前登录的每个用户打印以下信息:登录名、终端线路、登录时间和远程主机名或 X 显示。
如果给出一个非选项参数,
who' uses that instead of a default system-maintained file (often/var/run/utmp' 或/etc/utmp') as the name of the file containing the record of users logged on./var/log/wtmp' 通常作为参数提供给 `who' 以查看谁以前登录过。如果给出两个非选项参数,
who' prints only the entry for the user running it (determined from its standard input), preceded by the hostname. Traditionally, the two arguments given are我是我吗,就像“我是谁”一样。
我 [想] 知道参数和选项之间的区别,但这 [再次] 否定了很多。
术语不是完全固定的,因此不同的文档使用不同的术语,或者更糟的是,相同的术语具有不同的含义。您正在阅读的手册页中的术语是常见的。它是POSIX标准中使用的一种。简而言之,命令后面的每个单词都是一个参数,以 开头的参数-是选项。
争论
在 shell 命令语言中,传递给实用程序的参数相当于由 exec 函数之一创建的 argv 数组中的单个字符串。参数是命令名称后面的选项、选项参数或操作数之一。
操作数
命令的参数,通常用作向实用程序提供完成其处理所需的信息的对象。操作数通常遵循命令行中的选项。
选项
命令的参数,通常用于指定实用程序默认行为的更改。
“Utility”就是通常所说的“command”(标准使用“ utility ”这个词来避免与“command”的含义产生歧义,包括参数甚至复合shell命令)。
大多数命令遵循标准实用程序参数语法,其中选项以 a -(破折号又名减号)开头。所以一个选项类似于-a(短选项,遵循 POSIX 指南)或--all(长选项,来自 GNU 的扩展)。非选项参数是不以 开头的参数-,或者仅包含-(将其who视为文字文件名,但许多命令将其视为标准输入或标准输出)。
此外,某些选项本身也有参数。这个参数可以通过几种方式传递:
foo -obar:bar是单字母选项的参数-o。foo --option=bar。foo -o bar或foo --option bar。如果选项-o(或--option)接受一个参数,则bar是选项-o(或--option)的参数。如果-o(或--option)不带参数,则bar是一个操作数。这是一个更长的例子:
tail -n 3 myfile
Run Code Online (Sandbox Code Playgroud)
-n是一个选项,3是选项的参数-n,myfile是一个操作数。
术语不同,因此您可能会发现在 POSIX 使用操作数的意义上使用参数的文档。但是“非选项论证”比这两个术语更常见。
问题是,选项(或开关或标志,无论你喜欢怎么称呼它们)也算作参数。实际上,您在命令名称之后提供的任何内容都构成了命令的参数(例如,shell 使用的结构如重定向除外)。
您的程序/脚本将所有内容作为参数一起接收,并且需要将选项参数(作为选项的参数)与其他参数分开……您猜对了!……非选项参数。
所以信息页面所说的是,如果who收到一个不是选项的参数,它会认为它是它为登录信息查询的默认文件的替代方案。
| 归档时间: |
|
| 查看次数: |
12723 次 |
| 最近记录: |