非常相似to this question .
我正在使用 BASH 中的自动脚本迭代一些内容。有时脚本会遇到“-n”,echo 会尝试解释它。
尝试这样做:
$ POSIXLY_CORRECT=1 /bin/echo -n
和
$ POSIXLY_CORRECT=1 /bin/echo "-n"
但它每次都解释参数。
然后这个可行,但它可能会命中字符串中的转义字符,这就是为什么我不想将空字符应用于所有输入并使用 -e。
$ echo -e "\x00-n"
-n
printf 是可能的,但除非没有其他选择(并非所有机器都将 printf 作为实用程序),否则应避免使用。
$ printf "%s" "-n"
-n
那么有没有办法让 echo 打印“-n”?
最佳答案
printf
应该内置在所有的 shell 中,除非你的某些机器有非常旧的 shell 版本。很长一段时间以来,它一直是 bash
的内置功能。它可能比 echo -e
更便携。
否则,真的没有办法获得它关心的 echo
选项。
编辑:来自an answer另一个类似的问题;通过使用这个方便的 no-digital-rights-retained 包装器避免 printf
的引用问题:
ech-o() { printf "%s\n" "$*"; }
(这是 ech-o,如“无选项”)
关于bash - echo "-n"不会打印-n?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13258664/