如何使 shell 中的 echo 或 printf 忽略双反斜杠 (\\) 并按我看到的打印出来
How can I make echo or printf in shell ignore a double backslash (\\) and print it as I see it
我试图在我的 shell 脚本中输入一些 ascii 艺术字,我同时使用两个反斜杠 (\\) 我希望 echo 或 printf 将这两个反斜杠一起打印。我可以在 echo 或 printf 之后添加一些内容,让它们按字面意思打印双引号 (") 内的每个字符吗?
例如我想要:
echo -something "
__ __ __ __
\ // \ //
\ // \ //
\// \//
"
打印
__ __ __ __
\ // \ //
\ // \ //
\// \//
原来如此。
单引号是你的朋友;反斜杠只是单引号字符串中的一个普通字符。除了单引号本身之外的所有其他字符也是如此。
echo '
__ __ __ __
\ // \ //
\ // \ //
\// \//
'
如果在单引号输出中需要单引号,则必须编写序列 '\''
以获得单引号:
echo '"single quotes" ('\'') are harder than "backslashes" (\)'
我在其中加入了双引号和反斜杠,以便更难在字符串周围使用双引号。但是,您也可以这样写:
echo "\"single quotes\" (') are harder than \"backslashes\" (\)"
我试图在我的 shell 脚本中输入一些 ascii 艺术字,我同时使用两个反斜杠 (\\) 我希望 echo 或 printf 将这两个反斜杠一起打印。我可以在 echo 或 printf 之后添加一些内容,让它们按字面意思打印双引号 (") 内的每个字符吗?
例如我想要:
echo -something "
__ __ __ __
\ // \ //
\ // \ //
\// \//
"
打印
__ __ __ __
\ // \ //
\ // \ //
\// \//
原来如此。
单引号是你的朋友;反斜杠只是单引号字符串中的一个普通字符。除了单引号本身之外的所有其他字符也是如此。
echo '
__ __ __ __
\ // \ //
\ // \ //
\// \//
'
如果在单引号输出中需要单引号,则必须编写序列 '\''
以获得单引号:
echo '"single quotes" ('\'') are harder than "backslashes" (\)'
我在其中加入了双引号和反斜杠,以便更难在字符串周围使用双引号。但是,您也可以这样写:
echo "\"single quotes\" (') are harder than \"backslashes\" (\)"