我想在我的 bash 脚本完成后输出这个。
/\_/\
( o.o )
> ^ <
我尝试了以下但所有返回错误。
echo /\\_/\\\n\( o.o \)\n > ^ <
echo \/\\_\/\\\r\n( o.o )\r\n > ^ <
echo /\\_/\\\n\( o.o \)\n \> ^ <
如何转义这些字符,以便 bash 将它们呈现为字符串?
我想在我的 bash 脚本完成后输出这个。
/\_/\
( o.o )
> ^ <
我尝试了以下但所有返回错误。
echo /\\_/\\\n\( o.o \)\n > ^ <
echo \/\\_\/\\\r\n( o.o )\r\n > ^ <
echo /\\_/\\\n\( o.o \)\n \> ^ <
如何转义这些字符,以便 bash 将它们呈现为字符串?
在这种情况下,我将使用
cat
(引用的)here-document:这是确保 ASCII 艺术按预期方式输出的最佳方式,而不会让 shell “妨碍”(扩展变量等,解释反斜杠转义序列,或执行重定向、管道等)
您还可以使用多行字符串
printf
:请注意在我们要输出的静态字符串周围使用单引号。我们使用单引号来确保 ASCII 艺术不会被 shell 以任何方式解释。另请注意,我们输出的字符串是
printf
. 的第一个参数printf
始终是单引号格式字符串,其中反斜杠远非无效。或多个字符串
printf
(每行一个):或者,使用
echo
(但请参阅为什么 printf 比 echo 更好?;基本上,根据 shell 及其当前设置,某些转义序列可能存在问题,这些问题可能无法与 ASCII 绘图配合使用),但同样,
cat
我认为仅从此处的文档中输出它是最方便和直接的。用单
''
引号或双引号将其括起来""
,以防止将<>()
其作为运算符。然后,如果您想在一行上使用echo -e
或$' '
在 Bash 中,将换行符标记为\n
并用另一个反斜杠转义反斜杠。或者更确切地说,用于避免各种环境printf
之间差异的问题。echo
所以:
也可以看看: