La diferencia entre comillas y dobles comillas en el shell Vistas: 13781

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

2 comentarios en “La diferencia entre comillas y dobles comillas en el shell Vistas: 13781

  1. 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

Deja una respuesta

Publicar comentario