如何在不格式化的情况下在 bash 中打印?

Ksh*_*rma 5 bash

printf "-Xdebug"
Run Code Online (Sandbox Code Playgroud)

给出:

bash: printf: -X: invalid option
printf: usage: printf [-v var] format [arguments]
Run Code Online (Sandbox Code Playgroud)

echo -n "-Xdebug"有效,但根据这里的这个问题它不可移植。

echo 命令有多个版本,具有不同的行为。显然,用于脚本的 shell 使用了无法识别 -n 的版本。

如何将字符串按原样打印到屏幕上?

Mik*_*kel 11

添加格式字符串

printf '%s' '-Xdebug'
Run Code Online (Sandbox Code Playgroud)

或用于--表示选项处理结束

printf -- '-Xdebug'
Run Code Online (Sandbox Code Playgroud)

  • `%s` 解决方案通常更安全—— `printf -- ` *`string`* 会破坏包含 `%` 或 ``\`` 的字符串。 (3认同)