Differenza quando si usano i backtick tra virgolette doppie e virgolette singole in Bash


12

Perché le seguenti due esecuzioni differiscono nell'output? (Ho bisogno di doppie virgolette per le variabili nel mio eventuale comando)

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

Risposte:



6

Nel primo esempio i backtick vengono valutati dalla shell (come te e non come root). Prova con

sudo su -c "echo `whoami`"

Nel secondo con le virgolette singole 'l'intera stringa echo `cat /root/root_file`viene passata alla shell principale.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.