【问题标题】:How can you echo a literal '-n' or '-e'? [duplicate]你怎么能回显一个文字'-n'或'-e'? [复制]
【发布时间】:2014-08-07 16:10:56
【问题描述】:

在 Bash(或者实际上是任何其他 shell)中,如果我有一个想要回显的任意字符串,如果字符串是 -n-e,我怎样才能使回显不为空,或-E?我希望像 echo -- -e 这样的东西可以工作(阻止 echo 解释任何进一步的选项),但它没有。

即使明确指定一个标志也不能阻止它:echo -E -en 仍然没有输出。

使用 echo 时是否可以安全,还是我只需将所有 echo 调用切换到 printf '%s\n'

【问题讨论】:

    标签: bash echo command-line-arguments


    【解决方案1】:

    我会使用:

    printf "%s\n" "-n"
    

    它简单、安全、可靠,并且在当今大多数地方都可用。

    【讨论】:

      【解决方案2】:

      有点难看,但这似乎有效:

      echo -e "-\0e"
      

      编辑:正如 cmets 中的 glglgl 所建议的,更好的解决方案是

      echo -e '-\0145'echo -e '-\x65'

      【讨论】:

      • 看起来好像可以。 echo -e "-\0e"|hexdump -C 给了我00000000 2d 00 65 0a00 在这里是不需要的。但是echo -e '-\0145' 应该这样做,0145e 的八进制表示。
      • 公平点。我会更新答案。
      猜你喜欢
      • 2021-12-18
      • 1970-01-01
      • 2011-06-24
      • 2017-12-05
      • 2014-05-16
      • 2023-03-17
      • 2013-09-22
      • 1970-01-01
      • 2013-12-29
      相关资源
      最近更新 更多