linux - echo 'unix 命令行中的字符 - (破折号)

标签 linux echo

这是一个非常简单的问题,无论如何在互联网上都没有任何相关内容。 如何使用 echo 命令打印单个破折号?我尝试用“\”、“/”、“-”、“%”甚至“#”来转义它,但它似乎仍然拒绝打印一个简单的单破折号字符。我尝试使用单引号、双引号或根本不使用引号,但似乎这对于 echo 来说是不可能的。就此而言,手册页或其他任何地方都没有任何内容,有人可以告诉我该怎么做吗? 为了让事情变得绝对清楚:我想使用 echo '-' (或类似的东西)并得到一个破折号 - 作为输出

最佳答案

这个问题是 2 年多前提出的,但我刚刚注意到 bash 和 zsh 上的 echo 表现不同。

在 Zsh 上,第一个破折号用于终止选项处理;正如@asatsi 回答的那样,您可以使用 - 打印

% echo - -
-

在 Bash 上,单破折号工作得很好。

$ echo -
-

来自 Z Shell 手册 ( http://zsh.sourceforge.net/Doc/Release/Shell-Builtin-Commands.html )

echo [ -neE ] [ arg ... ]

...

Note that for standards compliance a double dash does not terminate option processing; instead, it is printed directly. However, a single dash does terminate option processing, so the first dash, possibly following options, is not printed, but everything following it is printed as an argument. The single dash behaviour is different from other shells. For a more portable way of printing text, see printf, and for a more controllable way of printing text within zsh, see print.

关于linux - echo 'unix 命令行中的字符 - (破折号),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44448096/

相关文章:

linux - PhpStorm 未检测到 Debian 8 的自定义主题

linux - 通过 ssh 连接找不到 Bash、别名/自定义函数

linux - FASM SHR 奇怪的行为

linux - Echo 命令行问题

bash - 如何使用 Bash 抑制命令的所有输出?

c# - 从 bash 文件传递​​参数时出现单声道性能问题

python - 在 Python 中将 Linux 命令作为原始字符串

php - 如何在 PHP echo 函数中使用 javascript?

echo - 是否可以从 nat 内部 ping 通 nat?

php - 使用 header() 重新加载页面后使用 echo() 写入文本