AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 701616
Accepted
Star OS
Star OS
Asked: 2015-11-24 09:46:41 +0800 CST2015-11-24 09:46:41 +0800 CST 2015-11-24 09:46:41 +0800 CST

如何在不发出换行符的情况下打印“-n”?

  • 772

我正在尝试-n使用echo命令进行打印。但如果我只是输入echo -n,它只会发出一个换行符,不会显示-n,而是发出一个换行符。

bash
  • 9 9 个回答
  • 16793 Views

9 个回答

  • Voted
  1. Best Answer
    terdon
    2015-11-24T10:06:06+08:002015-11-24T10:06:06+08:00

    问题是echo将 the 解释-n为参数。在默认的 bash 实现中,这意味着(来自help echo):

      -n  do not append a newline
    

    有多种方法可以解决这个问题:

    1. 通过包含另一个角色使其成为不可选项的东西。例如,告诉echo不要使用 打印换行符-n,然后告诉它解释反斜杠转义-e符并显式添加换行符。

      $ echo -ne '-n\n'
      -n
      
    2. 或者,只需包含一个空格

      $ echo " -n"
       -n
      

      但是,这会增加一个您可能不想要的空间。

    3. 在它之前使用一个非打印字符。这里。我正在使用退格键 ( \b)

      $ echo -e "\b-n"
      -n
      

      这还会添加一个您可能不想要的额外字符。

    4. 使用诡计

      $ echo n- | rev
      -n
      

      该rev命令只是将其输出颠倒过来。

    5. 为工作使用正确的工具

      $ printf -- '-n\n'
      -n
      
    • 31
  2. A.B.
    2015-11-24T09:50:26+08:002015-11-24T09:50:26+08:00

    有时使用正确的工具是个好主意。您可以printf改用:

    % printf "-n\n"       
    -n
    
    • 16
  3. Pilot6
    2015-11-24T09:56:49+08:002015-11-24T09:56:49+08:00

    您可以使用此命令,但它会增加一个额外的空间。

    echo -e  "\r-n"
    

    这是一种黑客攻击。

    -e启用反斜杠命令符号。

    \r是一个回车。

    实际上,任何\有效字符都可以出现在字符串的任何位置。

    您可以通过 来查看哪些有效help echo。

    echo "-n"不起作用,因为-n用作 的参数echo。

    PS恕我直言,最好的解决方案是

    echo -e "-n\c"
    

    它不添加任何额外的字符。

    echo -e "-n\n"
    

    打印相同但带有换行字符。

    • 7
  4. Sadi
    2015-11-24T09:53:45+08:002015-11-24T09:53:45+08:00

    我想如果你肯定只想使用echo,这应该让你满意:

    echo "-n "
    

    这是有效的,因为 while-n是 的有效选项echo,-n后面有一个空格。因为它不是一个选项,echo所以只打印它。

    • 5
  5. Joshua
    2015-11-24T13:53:30+08:002015-11-24T13:53:30+08:00

    你们真是想多了。

     echo -e \\055n
    

    或者没有尾随换行符

     echo -en \\055n
    
    • 5
  6. jiwopene
    2015-11-24T12:30:20+08:002015-11-24T12:30:20+08:00

    在 Bash 脚本中,您可以运行:

    echo -n -
    echo n
    

    或者在交互式 shell 中:

    echo -n - ; echo n
    

    这echo是一个-字符和一个n字符。

    • 2
  7. Dmitry Grigoryev
    2015-11-25T04:17:56+08:002015-11-25T04:17:56+08:00

    要扩展@AB 的答案,唯一可移植的使用方式echo是避免使用任何选项,如-n. 在可用的情况下考虑使用printf。此参考页面提供了更多详细信息,并很好地解释了何时、如何echo以及printf应该使用:

    如今,echo(1) 只有在省略标志和转义序列时才可移植。如果您需要的不仅仅是纯文本,请改用 printf(1)。

    • 2
  8. kos
    2015-11-26T12:01:29+08:002015-11-26T12:01:29+08:00

    其他三种方式:

    $ echo -e '\x2dn' # ASCII hexadecimal value
    -n
    $ echo -e '\u002dn' # Unicode code point
    -n
    $ echo -e '\u2dn' # Unicode code point shortened
    -n
    
    • 1
  9. jiwopene
    2015-12-09T12:46:37+08:002015-12-09T12:46:37+08:00

    你可以跑

    printf -n;echo
    

    在 Busybox Ash 中测试

    • 0

相关问题

  • 同时复制到两个位置

  • 如何在 shell 脚本中创建选择菜单?

  • 从 bash 迁移到 zsh [关闭]

  • bashrc 还是 bash_profile?

  • 备份 bash 脚本未压缩其 tarball

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve