如何在shell中创建echo或printf忽略双反斜杠(\\)并按我看到的方式打印它

时间:2015-02-05 15:49:07

标签: linux shell printf ascii echo

我试图在我的shell脚本中输入一些ascii word art,并且我一起使用两个反斜杠(\\)我希望echo或printf将这两个反斜杠打印在一起。在echo或printf之后是否可以放置一些内容,使它们在双引号内打印每个字符(")?

例如我想:

echo -something "
     __      __  __      __
      \\    //    \\    //
       \\  //      \\  //
        \\//        \\//
"

打印

     __      __  __      __
      \\    //    \\    //
       \\  //      \\  //
        \\//        \\//

究竟是怎么回事。

1 个答案:

答案 0 :(得分:0)

单引号是你的朋友;反斜杠只是单引号字符串中的普通字符。除了单引号本身之外,其他所有角色都是如此。

echo '
     __      __  __      __
      \\    //    \\    //
       \\  //      \\  //
        \\//        \\//
'

如果您在单引号输出中需要单引号,则必须编写序列'\''以获取单引号:

echo '"single quotes" ('\'') are harder than "backslashes" (\)'

其中我包含双引号和反斜杠,以便在字符串周围使用双引号更难。但是,你也可以写:

echo "\"single quotes\" (') are harder than \"backslashes\" (\\)"