Różnica w przypadku używania odwrotnych znaków w podwójnych cudzysłowach i pojedynczych cudzysłowów w Bash


12

Dlaczego następujące dwa wykonania różnią się wydajnością? (Potrzebuję podwójnego cudzysłowu dla zmiennych w moim ewentualnym poleceniu)

$ 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!

Odpowiedzi:



6

W pierwszym przykładzie backsticks są oceniane przez twoją powłokę (jako ty, a nie root). Spróbuj z

sudo su -c "echo `whoami`"

W drugim z pojedynczymi cudzysłowami 'cały ciąg echo `cat /root/root_file`jest przekazywany do powłoki root.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.