为什么 wget -O- 输出到 stdout?

5 bash wget

选项-O file用于将wget输出输出到特定的file.

为什么wget -O- "$url"输出到stdout?-O-中没有这样的表达man wget。为什么第二个字符-意味着-O-下载"$url"并将其输出到标准输出?

Dan*_*ell 8

根据 posix 标准,如果程序采用文件路径参数进行输出,-则表示“标准输出”。手册页在 下对此进行了描述-O

  • 如果单字母选项“-X”带有参数,则可以使用“-X arg”或“-Xarg”。这绝对是标准的。 (4认同)
  • 从字面意义上讲,它是“标准”,它被标准化为 POSIX 实用程序参数语法指南的一部分 - 请参阅 http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html *[A] 符合要求的实现还应允许应用程序在同一参数字符串中指定选项和选项参数,而无需插入空白字符*,即实用程序语法指南 6(靠近同一文档末尾)引用的“除非注明”子句。 (3认同)
  • 另外,请参阅同一文档末尾的指南 13 —— 这意味着“-”指的是 stdin 或 stdout,这不仅仅是一个“松散约定”,而且同样是 POSIX 强制要求(尽管仅适用于 POSIX 标准化实用程序的强制规定) 。 (2认同)