在Bash中在双引号和单引号中使用反引号的区别


12

为什么以下两个执行的输出不同?(我最终的命令中的变量需要双引号)

$ sudo su -c "echo `cat /root/root_file`"
cat: /root/root_file: Permission denied
$ sudo su -c 'echo `cat /root/root_file`'
Yay, highly classified content!

Answers:



6

在第一个示例中,反引号由您的shell(作为您而不是root)评估。试试看

sudo su -c "echo `whoami`"

在第二个中使用单引号'将整个字符串echo `cat /root/root_file`传递到根shell。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.