与这个问题非常相似.
我正在使用BASH中的自动脚本迭代一些事情.偶尔脚本会遇到"-n",echo会尝试解释这个.
试图这样:
$ POSIXLY_CORRECT=1 /bin/echo -n
Run Code Online (Sandbox Code Playgroud)
和
$ POSIXLY_CORRECT=1 /bin/echo "-n"
Run Code Online (Sandbox Code Playgroud)
但它每次都解释了这个论点.
然后这个,但它可以在字符串中点击转义字符,这就是为什么我不想对所有输入应用空字符并使用-e.
$ echo -e "\x00-n"
-n
Run Code Online (Sandbox Code Playgroud)
printf是可能的,但是要避免,除非没有其他选项(并非所有机器都将printf作为实用程序).
$printf "%s" "-n"
-n
Run Code Online (Sandbox Code Playgroud)
那么有没有办法让回声打印"-n"?
printf应该是所有shell中内置的,除非你的某些机器有很旧的shell版本.它已经内置bash了很长时间.它可能比便携式更便携echo -e.
否则,真的没办法得到echo它关心的选项.
编辑:从答案到另一个类似的问题; printf使用这个方便的无数字版权保留包装器来避免引用问题:
ech-o() { printf "%s\n" "$*"; }
Run Code Online (Sandbox Code Playgroud)
(那是ech-o,如"没有选项")
| 归档时间: |
|
| 查看次数: |
6702 次 |
| 最近记录: |