Cookies en Outbook

Esta web utiliza cookies propias para ofrecer una mejor experiencia. Al navegar, aceptas dichas cookies.
  • Más información acerca de las cookies

Outbook

UI-Dev & more

Bash: leer parámetros de comando

Cuando escribimos scripts en Bash, muchas veces necesitamos pasarle argumentos desde la línea de comandos. Estos parámetros permiten que un mismo script se comporte de forma diferente según lo que necesitemos.

Argumentos básicos: $1, $2, $3

En Bash, cada argumento se representa con una variable especial:

  • $0 → el nombre del script.
  • $1 → el primer argumento.
  • $2 → el segundo argumento.
  • $@ → todos los argumentos como lista.
  • $# → el número de argumentos recibidos.

Ejemplo sencillo (bash-arguments.sh):

#!/bin/bash

ARG_1=$1
ARG_2=$2

echo "Valor del argumento 1: $ARG_1"
echo "Valor del argumento 2: $ARG_2"

Ejecutamos:

bash-arguments.sh valor1 valor2

Salida:

Valor del argumento 1: valor1
Valor del argumento 2: valor2

Saber cuántos argumentos llegaron

Podemos comprobar si se pasaron los parámetros esperados:

#!/bin/bash

echo "Número de argumentos: $#"
echo "Todos los argumentos: $@"

Ejemplo:

bash script.sh uno dos tres

Salida:

Número de argumentos: 3
Todos los argumentos: uno dos tres

Uso de shift: recorrer argumentos

A veces no sabemos cuántos parámetros habrá. Con shift, podemos procesarlos uno por uno:

#!/bin/bash

while [[ $# -gt 0 ]]; do
  echo "Procesando argumento: $1"
  shift
done

Argumentos con nombre (flags)

Para scripts más elaborados, es habitual usar flags como -f o --file. Un ejemplo simple:

#!/bin/bash

while [[ $# -gt 0 ]]; do
  case $1 in
    -f|--file)
      FILE="$2"
      shift 2
      ;;
    -v|--verbose)
      VERBOSE=1
      shift
      ;;
    *)
      echo "Opción desconocida: $1"
      exit 1
      ;;
  esac
done

echo "Archivo: $FILE"
echo "Verbose: $VERBOSE"

Ejemplo de uso:

bash script.sh --file datos.txt --verbose

Conclusión

  • $1, $2, $@, $# son las variables básicas para leer parámetros en Bash.
  • Con shift puedes recorrer argumentos de forma dinámica.
  • Para scripts más avanzados, usa estructuras case para interpretar opciones con nombre.

De esta forma, tu script será mucho más flexible y fácil de mantener.

Publicado

Categorías:

Etiquetas: