Scripts Bash con argumentos: $1, $2, ${10}, $# y $*
Clase 8 de 43 • Curso de Programación en Bash Shell
Contenido del curso
Programación Shell Básica
Script Interactivos
Condicionales
Iteración
Archivos
Empaquetamiento
Funciones
Cierre del curso
Domina la ejecución de scripts Bash con argumentos y usa con seguridad las variables especiales para recuperar el nombre del programa, contar parámetros y listarlos. Aquí verás cómo mapear argumentos a variables, cuándo usar comillas y cómo ejecutar paso a paso en Ubuntu, tal como se mostró en el ejemplo.
¿Qué son los argumentos en Bash y para qué sirven?
Los argumentos permiten pasar datos a un programa al momento de ejecutarlo. En Bash, se accede a cada argumento con $1, $2, … y, si hay más de nueve, con ${10}, ${11}, …. También puedes obtener el nombre del script con $0, conocer cuántos argumentos llegaron con $# y ver todos los argumentos con $*.
- $0: nombre del script invocado.
- $1, $2…$9: argumentos del 1 al 9.
- ${10}: argumento 10 en adelante.
- $#: cantidad total de argumentos.
- $*: todos los argumentos en una sola cadena.
¿Cómo se usan las variables especiales $0, $1, ${10}, $# y $*?
La referencia a cada argumento es directa. Por ejemplo, el primer argumento se asigna con $1 a una variable y el segundo con $2. Luego, puedes imprimirlos con echo. Para conocer cuántos llegaron, usa $#; para mostrarlos todos, $*.
- Asignar el primer argumento: variable="$1".
- Asignar el segundo argumento: variable="$2".
- Contar argumentos: $# imprime la cantidad enviada.
- Listar todos: $* devuelve la lista en una sola expansión.
¿Cómo referenciar del argumento 10 en adelante?
A partir del argumento 10 debes usar llaves para evitar ambigüedad.
- Usar ${10} y no $10.
- Aplicar lo mismo para ${11}, ${12}, etc.
¿Cuándo poner comillas en los argumentos?
Cuando el argumento tiene espacios, envuélvelo entre comillas para que Bash lo trate como un solo valor.
- Ejemplo: "Programación Bash" es un único argumento.
- Sin comillas, se dividiría en varios argumentos.
¿Cómo crear y ejecutar un script que reciba argumentos?
El flujo mostrado fue: crear el archivo, definir la cabecera de Bash, declarar variables a partir de $1 y $2, imprimir con echo, guardar, dar permisos de ejecución (+x) y ejecutar con ./ seguido de los argumentos.
¿Qué estructura mínima tiene el script de ejemplo?
#!/bin/bash
# Nombre: argumentos.sh
# Descripción: ejemplo del paso de argumentos.
nombre_curso="$1"
horario_curso="$2"
echo "El nombre del curso es: $nombre_curso, dictado en el horario de: $horario_curso"
echo "El número de parámetros enviados es: $#"
echo "Los parámetros enviados son: $*"
- Guardar y salir: :wq.
- Dar permisos de ejecución: aplicar +x al archivo.
- Ejecutar: ./argumentos.sh "Programación Bash" "seis a ocho".
¿Quieres que revisemos más patrones de uso con $# y $ o casos con más de nueve argumentos usando ${10}*? Deja tu pregunta y ejemplo en los comentarios.