Las comillas en los script bash

En esta cuarta entrega del curso de Scripting Linux usando Bash vamos a hablaros de los diferentes tipos de comillas (doble, simple, acento grave) , según la que utilicemos el Shell realiza una interpretación u otra del contenido que encierran dentro

“date”

‘date’

`date`

Comillas simples

El contenido se interpreta de forma literal.

SALUDO='Hola $USER, que tal?'
echo $SALUDO

No produce el resultado esperado Hola jose, que tal?

Comillas dobles

Interpreta las referencias a variable, las explosiona, poniendo en su lugar su contenido:

SALUDO="Hola $USER, que tal?"
echo "$SALUDO tu directorio de trabajo es $HOME"

El resultado será algo parecido a Hola jose, que tal? tu directorio de trabajo es /home/jose

Acento grave → sustitución de orden

La sustitución de orden permite usar la salida de una orden para asignarla a una variable y tratarla, por ejemplo.

Hay dos formas de utilizarla, una de ellas es encerrando la orden con el acento grave:

  1. `orden`
  2. $(orden)

Bash realiza la expansión ejecutando la orden y reemplazando con la salida estándar de la ejecución misma.

En este ejemplo, alimentamos 2 variables con el resultado de ejecutar 2 comandos:

HOY=`date`
DIR=`pwd`

Si usáis echo para ver su contenido:

echo $HOY $DIR
dom abr 19 09:54:09 CEST 2015 /home/jose

Y esto es todo, os animo a seguir probando  todo lo que hemos visto hasta ahora, en las cuatro entregas que llevamos, en un script de tipo RETO,

RETO: Script que reciba cómo parámetros 3 números, compruebe si realmente le han pasado 3 parámetros, en caso afirmativo que devuelva el resultado de la suma de esos tres números, y en caso negativo informe al usuario del uso correcto del script. Sería conveniente y lo dejamos como plus, que comprobase que los parámetros son realmente números.

Ejemplo de ejecución correcta:

./reto.sh 2 2 2
6

Ejemplo de ejecución incorrecta:

./reto.sh a b
Uso: ./reto.sh numero1 numero2 numero3

[< Variable de entorno Path ]

8 comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.