【问题标题】:-v vs -version vs --version-v vs -version vs --version
【发布时间】:2020-03-04 03:31:42
【问题描述】:

我使用的是 OS X。我一直使用<package name> -v,并将其称为<package name> --version 的快捷方式。但我最近看到一些人使用<package name> -version(一个连字符)。这些命令有什么区别吗?

【问题讨论】:

  • 那是关于约定的。 java 使用例如 -version。认为这可能更适合 SO Super User。

标签: bash unix package version


【解决方案1】:

不同的命令有不同的命令语法,通常是出于历史原因1

-version--version 的含义没有根本区别。您只需使用特定命令支持的版本选项。 (通常很容易找出哪个/哪个有效。)

这有点像单词的不同拼写;例如

  • 颜色与颜色
  • 灰色与灰色

除了应用程序通常理解“其他”类型的版本选项。


POSIX.1-2017 标准在此处记录了命令语法约定:

但请注意,它只称它们为“指南”。遵守指南不是强制性的。


1 - 例如,Java 命令使用 - 作为其长格式选项,因为 Java 于 1997 年首次公开发布。他们决定不更改它,因为他们不想破坏用户的脚本2。有关非常规选项的另一个示例,请查看tar 命令的命令语法。

2 - Java Bug 数据库中存在关于“-version”的问题。很久以前就被标记为“不会修复”。

【讨论】:

  • 明白,谢谢。所以三个人都做同样的事情。那些历史原因可能是什么?比如说,--version 已经存在,为什么有人要让它让-version 也能正常工作?他们不会认为这会令人困惑吗?
  • 好吧,评论一下:真的有标准如何打印版本信息吗?有所谓的长。与空头期权相比。正如@StephenC 已经解释的那样,只是存在不同的风味/风味(SCNR)。
  • @stephanmg - 这是一个约定,而不是一个标准。 GNU getopts 库等库支持该约定,但某些软件早于该约定的出现(或广泛采用)。
  • 原因是一般来说 - 和 - 没有标准。例如find 使用单破折号来介绍单词选项。
  • POSIX 标准包括单连字符选项的约定,前面有- 的选项簇是单独列出的每个选项的简写(例如,-fbx-f -b -x 的缩写),和-- 作为表示选项处理结束的参数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-06
  • 2022-12-02
  • 2023-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多