Ayer leí un interesante artículo en How-To Geek, sobre el uso de comillas y dobles comillas, que es muy esclarecedor para todos aquellos que hacemos un uso frecuente del terminal, y que vamos aprendiendo a base de teclado y lo que vamos leyendo aquí y allá, sin el uso de ningún manual (craso error).
Esto me lleva a reproducirlo más o menos, con algunos ejemplos adicionales, y mis propias pruebas e interpretaciones.
Entrecomillado de texto
Si lo que entrecomillas es simplemente texto, da lo mismo como lo hagas, es exactamente igual:
mkdir "esto es una prueba" mkdir 'esto es una prueba'
ambas instrucciones crearan un directorio llamado «esto es una prueba». Otra manera de hacer la misma operación es:
mkdir esto\ es\ una\ prueba
Expansión de variables
La diferencia entre el encomillado sencillo y doble toma su importancia cuando tratamos con variables en la línea de comando, de forma que el shell expande una variable en su contenido cuando se ejecuta, es decir:
prueba="Esto es una prueba"
Ahora ya puedes utilizar esta variable en la línea de comandos, de forma que cuando tu ejecutes este comando:
echo $prueba
El terminal te devolverá: Esto es una prueba
Aquí es donde se puede ver la diferencia entre comillas y dobles comillas. Si ejecutas:
echo '$prueba'
el terminal de devoverá: $prueba
Sin embargo ejecutando:
echo"$prueba"
lo que te devolverá el terminal será: Esto es una prueba
En pocas palabras con las dobles comillas se sustituye la variable por su contenido
Un paso más allá, ejecución de comandos
Sin embargo, cuando utilizas ` lo que haces es ejecutar un comando en otro comando, por ejemplo si quieres utilizar el comando «pwd» en otro comando, deberías hacerlo de esta manera:
echo `pwd`/prueba
que en el caso de estar en mi directorio, daría como resultado: /home/atareao/prueba
Este mismo resultado lo puedes obtener ejecutando esta línea:
echo "`pwd`/prueba"
donde hemos «envuelto» todo entre dobles comillas, sin embargo si lo hacemos con simples comillas encotraremos como salida `pwd`/prueba
Resumiendo
- Dobles comillas
- Usar dobles comillas cuando se encierran variables o se utilizan comandos envueltos en «
- Todos los carácteres se intrepetan tal y como son, excepto $ y ` que serán expandidos en el shell
- Simples comillas
- Todos los caracteres son interpretados como una tal y como son
Vía | How-To Geek
Tan sólo aclarar que en el mundo de la programación, es igual, así que los que programen en PHP u otro lenguaje, este tutorial les enseñará la diferencia entre comillas simples y dobles. Gracias!
Muy buena aclaración. Creo que a muchos les servirá.
En el caso de ejecutar un comando dentro de otro, o simplemente deseamos capturar su salida, creo que es mucho mas claro usar $(comando). Pej:
echo $(ls)
es una forma rebuscada de listar los directorios. Otro posible ejemplo:
Fecha=$(date)
echo «Son las $Fecha»
Aunque también podía hacerse sin la variable intermedia.
Por cierto, me gusto mucho el sitio