首页 > 解决方案 > 如何正确使用带有 unix 命令的破折号 (-)?

问题描述

我刚刚注意到命令:

ps -T

ps T

给出不同的结果。例如:

太平洋标准时间

太平洋标准时间

我的意思是第二个输出的第 2 行和第 3 行。
有人可以解释一下这里发生了什么以及破折号在这些命令中是如何工作的(老实说,我认为不需要参数的选项可以在没有破折号的情况下给出)。

提前致谢。

标签: linuxbashunix

解决方案


这里发生了什么

man pspsprocps

此版本的 ps 接受多种选项:

1 UNIX 选项,可以分组,并且前面必须有一个破折号。
2. BSD 选项,可以分组,不能与破折号一起使用。
3. GNU 长选项,前面有两个破折号。

T 选择与该终端关联的所有进程。

-T 显示线程,可能带有 SPID 列。

两个含义不同的选项。

破折号如何在此类命令中真正起作用

Dash 从字面上代表它自己。-是一个-,性格-。那么程序就有逻辑了,如果传递给程序的表示参数的字符串以-字符开头,那么那个程序的逻辑就不同了,那么当参数不以.开头时-

o 老实说,我认为不需要参数的选项可以在没有破折号的情况下给出

每个程序都有自己独特的语义和解析。虽然有约定和标准,并且以领先为首的选项-是(几乎)通用标准,但也有例外。(例如,“传统”tar命令语法可识别不带 . 的选项-。)

如何正确使用带有 unix 命令的破折号 (-)?

咨询您要运行的“命令”,因为它取决于该命令如何解析其参数。


推荐阅读