Diferencia al usar backticks en comillas dobles y comillas simples en Bash


12

¿Por qué las dos ejecuciones siguientes difieren en la salida? (Necesito comillas dobles para las variables en mi comando eventual)

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

Respuestas:



6

En el primer ejemplo, su shell evalúa los backticks (como usted y no como root). Probar con

sudo su -c "echo `whoami`"

En la segunda con comillas simples, 'la cadena completa echo `cat /root/root_file`se pasa al shell raíz.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.