Hacer que un script bash se pueda lanzar con un(os) parametro(s)

[h]Hacer un script bash que se ejecuta con opciones [/h]

La forma clásica de ejecutar un script bash es simple:

bash script.sh

¿Qué pasa si queremos dar la posibilidad de invocar lo con parámetros suplementarios?
Tomemos un ejemplo para que la idea quede clara.
Imaginamos un script para generar un PIN siguiendo un algoritmo en base de la dirección mac
Generalmente estos generadores funcionan así: Se ejecuta el script y se pide al usuario que entre el bssid para efectuar las operaciones.
Se usa para ello la orden read para guardar la entrada en un variable.
Abrid una consola y entrar

 read -ep "entra tu bSSID " RESPUESTA

Prenséis ; la pregunta aparece en consola y podéis entrar caracteres.
Prenséis otra vez y lo que habéis entrado se queda en una variable llamada “RESPUESTA”
https://www.wifi-libre.com/img/members/3/invocar_script_con_parametros.jpg
Luego vuestro script puede aplicar el algoritmo utilizando el valor de RESPUESTA

¿Porque no permitir al usuario entrar el bSSID cuando lanza el script?
Evitamos así el paso por la pregunta read para que entre el BSSID.

bash script.sh <bssid>

Es posible con la variable 1
La variable 1 se rellena toma el primer argumento que encuentra a la hora de lanzar el script.
Hagamos la prueba con un mini script ensayo

#!/bin/bash if -z "$1" ] ; then echo "bSSID requerido" exit 1 fi echo "el bssid que has entrado es: $1" exit 0
La condición if se hace sobre el hecho que que la variable 1 tiene un valor o ninguno ( -Z ) .
[list=1]
]Si no hemos lanzado el script con un bSSID nos dice que hace falta indicar un bSSID y salimos en estado de error (exit 1) ./]
]Si hemos puesto un bSSID el script se ejecuta correctamente y salimos en estado de éxito (exit 0)/]
[/list]
https://www.wifi-libre.com/img/members/3/script_argumentos_2.jpg

tema de interés
[list=*]
]Pass command line arguments to bash script @ Unix & Linux/]
[/list]