Herramientas de usuario

Herramientas del sitio


informatica:sistemas_operativos:linux:bash_scripting

¡Esta es una revisión vieja del documento!


Bash Scripting

Variables

Uso

#!/bin/bash
MY_SHELL="bash"
echo "Me gusta la shell $MY_SHELL"

Usaremos la notación con las llaves si queremos “pegar” algo en la variable:

#!/bin/bash
BIRTH_YEAR="2000"
echo "Mi fecha de nacimiento es 01/01/${BIRTH_YEAR}"

El símbolo # no será interpretado por el shell (salvo el caso de shebang), así que se utiliza para añadir comentarios.

Parámetros posicionales

Los argumentos que pasamos a un script se procesan en el mismo orden en que se envían. Se empiezan a nombrar desde el uno y se pueden acceder desde dentro del script usando $1, $2 y así sucesivamente . El parámetro posicional hace referencia a la representación del argumento usando su posición.

Por ejemplo, si tenemos el siguiente script:

echo "Primero: $1";
echo "Segundo: $2";
echo "Tercero: $3";

Y lo ejecutamos de la siguiente manera:

miscript.sh uno dos tres

Obtendremos:

Primero: uno
Segundo: dos
Tercero: tres

Número de argumentos desconocido

Si el script puede recibir cualquier número de argumentos, podemos acceder a ellos a través de la variable $@ que es un array que contendrá todos los argumentos.

i=1;
for numero in "$@" 
do
    echo "Número - $i: $numero";
    i=$((i + 1));
done

Ejemplo de ejecución:

miscript.sh uno dos tres cuatro

Salida:

Número - 1: uno
Número - 2: dos
Número - 3: tres
Número - 4: cuatro

Ejemplos

Recorrer fechas

Recorrer todas las fechas entre dos fechas:

fecha_inicio=2020-01-01
fecha_fin=2021-01-01
 
# Todas las fechas durante un año:
while [ "$fecha_inicio" != "$fecha_fin" ]; do 
  echo $fecha_inicio
  fecha_inicio=$(date -I -d "$fecha_inicio + 1 day")
done

Recursos

informatica/sistemas_operativos/linux/bash_scripting.1660035594.txt.gz · Última modificación: por tempwin