String 在echo中转义特殊字符
显示特殊字符列表。是否有echo的参数/选项,我可以将echo之后的所有内容都视为字符串 在python中,我可以使用String 在echo中转义特殊字符,string,unix,text,echo,String,Unix,Text,Echo,显示特殊字符列表。是否有echo的参数/选项,我可以将echo之后的所有内容都视为字符串 在python中,我可以使用“…”或“…” 我可以在unix的echo中使用'执行相同的操作,但不能使用',为什么会这样? $ echo #"`\|^!@#@%$#$^%$&%^*()?/\;:$#$@$?$$$!&& $ echo '''#"`\|^!@#@%$#$^%$&%^*()?/\;:$#$@$?$$$!&&''' #"`\|^!@#@%$#$^%
“…”
或“…”
我可以在unix的echo中使用'
执行相同的操作,但不能使用'
,为什么会这样?
$ echo #"`\|^!@#@%$#$^%$&%^*()?/\;:$#$@$?$$$!&&
$ echo '''#"`\|^!@#@%$#$^%$&%^*()?/\;:$#$@$?$$$!&&'''
#"`\|^!@#@%$#$^%$&%^*()?/\;:$#$@$?$$$!&&
$ echo """'''#"`\|^!@#@%$#$^%$&%^*()?/\;:$#$@$?$$$!&&"""
bash: !@#@%$#$^%$: event not found
#"`\|^!@#@%$#$^%'''$&%^*()?/\;:$#$"""@$?$$$!&&
如果我有这样的字符串会发生什么?
$ echo #"`\|^!@#@%$#$^%$&%^*()?/\;:$#$@$?$$$!&&
$ echo '''#"`\|^!@#@%$#$^%$&%^*()?/\;:$#$@$?$$$!&&'''
#"`\|^!@#@%$#$^%$&%^*()?/\;:$#$@$?$$$!&&
$ echo """'''#"`\|^!@#@%$#$^%$&%^*()?/\;:$#$@$?$$$!&&"""
bash: !@#@%$#$^%$: event not found
#"`\|^!@#@%$#$^%'''$&%^*()?/\;:$#$"""@$?$$$!&&
我应该如何回显这样的字符串?(以下命令不起作用)
这是因为shell在字符串中应用了所有扩展规则,双引号
“
<代码>$或
是特殊的Unix字符,用于表示变量或事件,因此会出现错误。我认为这是因为您的shell(bash)导致的。
这不适用于单引号。
有关详细信息,请查看
对于
echo
命令,有-e
选项,可用于解释反斜杠转义,这可能会有所帮助。使用printf
:
$ printf "%s\n" $'#"`\|^!@#@%$#$^%$&%^*()?/\;:$#$@$?$$$!&&'
#"`\|^!@#@%$#$^%$&%^*()?/\;:$#$@$?$$$!&&
$ printf "%s\n" $'#"`\|^!@#@%$#$^%\'\'\'$&%^*()?/\;:$#$"""@$?$$$!&&'
#"`\|^!@#@%$#$^%'''$&%^*()?/\;:$#$"""@$?$$$!&&
您可能会注意到单引号“
需要转义
要将输出分配给变量,请执行以下操作:
$ foo=$(printf "%s\n" $'#"`\|^!@#@%$#$^%\'\'\'$&%^*()?/\;:$#$"""@$?$$$!&&')
$ echo $foo
#"`\|^!@#@%$#$^%'''$&%^*()?/\;:$#$"""@$?$$$!&&