【发布时间】:2022-08-09 19:02:27
【问题描述】:
我在这台服务器上遇到了这个叫做neofetch的工具,但我不知道最后这些字符是什么,有人可以给我解释一下吗? 我知道单个反斜杠是 bash 中的转义字符,但在这种情况下呢?谢谢。 输出来自 sudo -l 命令。
/usr/bin/neofetch \\\"\\\"
标签: linux bash shell terminal sudo
我在这台服务器上遇到了这个叫做neofetch的工具,但我不知道最后这些字符是什么,有人可以给我解释一下吗? 我知道单个反斜杠是 bash 中的转义字符,但在这种情况下呢?谢谢。 输出来自 sudo -l 命令。
/usr/bin/neofetch \\\"\\\"
标签: linux bash shell terminal sudo
反斜杠 (\) 用于转义引号 (")。如果没有反斜杠,您将拥有:
/usr/bin/neofetch ""
shell 会将"" 解释为一个空字符串,并用它调用neofetch(即一个空字符串)。
通过转义引号,您可以使用"" 调用neofetch。
【讨论】:
它只打印""。
您可以随时在终端中使用echo \"\" 进行尝试。
在这种情况下,它只是为了逃避 "" 本身,它应该被 shell 解释为一个空字符串;通过转义它,您将 "" 本身作为参数传递给您的 neofetch 调用。
【讨论】:
\"\",您不会横向将任何参数传递给neofetch,它会向您简要介绍您的系统。因为有一个参数列表,您可以使用它们调用neofetch,例如内存或cpu。然而,同样可以通过调用neofetch 来完成。
neofetch 并不关心您作为 arg 传递的内容。如果您传递的不是定义的函数,它只会忽略它。检查here