这是摘录自bash手册:
当使用旧式反引号形式的替换时,反斜杠保留其字面含义,除非后面跟着
$
、`
或\
但反引号对待$
and 的\$
方式与以下命令的输出所建议的方式相同:
Command Output
echo '$PWD' $PWD
echo '\$PWD' \$PWD
答案1
我也是 stackexchange 和 Linux 的新手。提前致谢。
欢迎双方光临!
您的示例中没有反引号,这些是单引号:''
反引号看起来像这样:``
另外,我建议你简单地不要使用它们(就是反引号)!最好使用以下语法进行命令替换:$(<command>)
了解原因这里。
快乐黑客!
答案2
我认为存在误解:bash 手册作者所说的文字值并不是我们作为普通用户可能理解的文字值。此外,还有两件事在起作用。首先,反引号用于命令替换,其次是“反斜杠的字面含义”。让我们从最后一个开始。
引用 bash 手册的 QUOTING 部分:
A non-quoted backslash (\) is the escape character.
It preserves the literal value of the next character that
follows, with the exception of <newline>.
什么是不是很明显,作者正在谈论实际的反斜杠,即文本。单反斜杠本身代表转义字符,但他们在您提供的链接中谈论的是双反斜杠。看看这个:
bash-4.3$ var=`echo \ `
bash-4.3$ echo $var
bash-4.3$ var=`echo \\ `
bash-4.3$ echo $var
bash-4.3$ var=`echo \\$ `
bash-4.3$ echo $var
$
bash-4.3$ var=`echo \\\ `
bash-4.3$ echo $var
\
很难理解这一点,但可以这样想:您必须首先转义转义字符。