El análisis y el paso de argumentos a scripts bash/scripts shell es bastante similar a la forma en que pasamos argumentos a las funciones dentro de los scripts Bash. Veremos el proceso real de pasar los argumentos a un script y también veremos la forma de acceder a esos argumentos dentro del script.
Pasar argumentos antes de ejecutar
Podemos pasar parámetros justo después del nombre del script mientras ejecutamos el comando del intérprete bash. Puede pasar parámetros o argumentos al archivo. Solo el comando para ejecutar el script normalmente agregando el valor de los parámetros directamente al script. Cada parámetro es un valor separado por espacios para pasar al script de shell.
bash scriptname.sh>
El comando anterior simplemente ejecutará el script sin pasar los parámetros.
Mientras que el siguiente comando pasará los argumentos al script.
bash scriptname.sh parameter1 parameter2 parameter3 nth-parameter>

Ejecutando script bash con parámetros de paso
La captura de pantalla anterior muestra los parámetros pasados al script, cómo lo haremos, que explicaremos en la siguiente sección. Pero ahora podemos ver que hemos pasado los parámetros desde fuera del script usando variables de entorno de bash. Incluso puedes usar cadenas y otros tipos de datos, pero ten cuidado con los espacios en blanco. Los espacios en blanco harán que la variable sea un parámetro separado. Por lo tanto, especialmente para las cadenas, tenga cuidado de encerrarlas estrictamente entre comillas.
nombre de caracteres especiales
Detección de argumentos de línea de comando
Ahora veremos cómo accedemos a esos parámetros dentro del script. Usaremos el número de parámetros pasados en el orden, es decir, para los primeros parámetros pasados, analizaremos (accederemos) al parámetro usando como variable. El primer parámetro se almacena en la variable . Además, puede asignar esta variable a cualquier otra variable definida por el usuario que desee. Para el enésimo parámetro pasado, puede usar $n para acceder a ese parámetro en particular. Aquí, el nombre de la variable comienza con 1 porque el nombre del archivo/nombre del script es el parámetro 0. Si tiene más de 9 parámetros, asegúrese de usar { } alrededor del número sin paréntesis, bash solo verá como y excluirá el 0, así que use y así sucesivamente en lugar de simplemente .
#!/bin/bash echo '1st parameter = ' echo '2nd Parameter = '>
El script anterior puede acceder a los parámetros desde la línea de comando/shell utilizando los parámetros posicionales, que son 1, 2, 3, etc.

Accediendo a los argumentos desde el script.
Como puede ver, hemos utilizado {} para acceder a los números de variable de parámetro desde 10 en adelante. El script se puede utilizar para bucles for y while para iterar sobre los parámetros, pero lo discutiremos en secciones posteriores.
Asignar argumentos proporcionados a la variable Bash
También podemos asignarlo a otras variables personalizadas para dinamizar el script y moldearlo según las necesidades. Aunque el script anterior, cuando se ejecuta, solo imprimirá dos parámetros, seguramente puede acceder a más parámetros utilizando la variable como orden de los parámetros en números. El script puede acceder a las variables posicionales desde la línea de comando y usarlas en los lugares requeridos donde sea necesario dentro del script.
clave de periodo
#!/bin/bash a= b= p=$(($a*$b)) echo 'The product of $a and $b = $p'>

Asignar argumentos proporcionados a la variable Bash
El script anterior accede a los parámetros posicionales, es decir, y pasados al script y almacena las variables definidas por el usuario para acceder a ellas más tarde y modificarlas en consecuencia. También podemos acceder a más parámetros utilizando métodos iterativos como veremos en las próximas secciones.
También tenemos la capacidad de verificar si hay parámetros NULL o vacíos pasados usando los indicadores -z o -n. A partir de esto, podemos verificar si los parámetros se pasaron o no.
#!/bin/bash if [[ -z ]]; then echo 'No parameter passed.' else echo 'Parameter passed = ' fi>

Comprobación de parámetros posicionales pasados o no.
desactivar el modo desarrollador
Con este script, podemos detectar si se pasó algún parámetro posicional o no se pasó nada. El indicador -z busca variables NULL o no inicializadas en BASH. El indicador -z devuelve verdadero si la variable pasada es NULL o no está inicializada. Por lo tanto, podemos utilizar declaraciones If-else básicas para detectar los parámetros pasados.
También podemos usar el indicador -n que devuelve verdadero si no se pasan parámetros, por lo que tenemos que utilizarlo. para revertir la condición.
Como sigue:
#!/bin/bash if [[ ! -n ]]; then echo 'No parameter passed.' else echo 'Parameter passed = ' fi>
Este script también dará el mismo resultado, pero estamos utilizando el indicador -n en lugar de -z.
Leer múltiples argumentos con el bucle For o While
Podemos usar la variable @ para acceder a cada parámetro pasado al script a través de la línea de comando. Es una variable especial que contiene la matriz de variables en BASH. En este caso, lo estamos usando solo, por lo que contiene la matriz de parámetros posicionales pasados. También podemos usarlo para iterar sobre los parámetros pasados usando bucles o bucles while.
#!/bin/bash for i in $@ do echo -e '$i ' done>

Usando bucles y @ variable para acceder a los parámetros como elementos de matriz.
Usamos un bucle for basado en rango para iterar hasta que haya elementos en la matriz @. Simplemente iteramos sobre la matriz e imprimimos el elemento. Simplemente podemos asignarlo, modificar los valores y realizar los cambios necesarios en los parámetros y argumentos para lograr el resultado deseado del script.
pagar con git
O
También podemos imprimir los argumentos usando el bucle while y las variables ambientales de BASH.
#!/bin/bash i=$(($#-1)) while [ $i -ge 0 ]; do echo ${BASH_ARGV[$i]} i=$((i-1)) done> 
Usando el bucle while para iterar sobre los parámetros pasados.
Estamos usando la variable ' # 'ya que contiene la cantidad de parámetros pasados. Inicializamos la cantidad de parámetros y quitamos uno, ya que vamos a usar una matriz para iterar sobre él. Entonces, como de costumbre, el índice de la matriz comienza desde 0. Como esta matriz se inicializa desde el último elemento o parámetro pasado, necesitamos disminuir el contador hasta 0 para imprimir cada parámetro en el orden en que se pasa. Simplemente usamos la matriz BASH_ARGV para acceder a los parámetros e imprimir su valor. Además, en cada iteración, disminuimos el valor de i- el iterador o contador en uno usando las llaves dobles aritméticas. A partir de esto, simplemente imprimimos cada parámetro pasado al script usando un bucle while como se muestra en la captura de pantalla de salida.
Lectura con nombres de parámetros
Usando getopts para analizar argumentos y parámetros
Podemos usar el programa/comando getopts para analizar los argumentos pasados al script en la línea de comando/terminal mediante el uso de bucles y declaraciones de cambio de caso.
#!/bin/bash while getopts n:c: option do case '${option}' in n)nation=${OPTARG};; c)code=${OPTARG};; esac done echo 'Nation : $nation' echo 'code : $code'> 
Usando getopts para analizar argumentos y parámetros
Usando getopts, podemos asignar los argumentos/parámetros posicionales desde la línea de comando a las variables bash directamente. Esto nos permite gestionar los parámetros de forma agradable y sistemática. En el script anterior, hemos usado dos argumentos para almacenar las variables bash usando la sintaxis getopts, bucles while y declaraciones switch-case.
prueba el bloque catch java
Imprimir valores de todos los argumentos
Podemos imprimir los argumentos pasados al script mediante una variable simple y poderosa '@' que almacena todos los parámetros pasados.
#!/bin/bash echo 'The arguments passed in are : $@'>

Imprimir valores de todos los argumentos
Accediendo al número de parámetros pasados
También podemos usar la variable '#' para acceder a la cantidad de parámetros pasados desde la línea de comando. La variable # básicamente contiene la cantidad de parámetros/argumentos que se pasan al script.
#!/bin/bash echo 'The number of arguments passed in are : $#'>

Accediendo al número de parámetros pasados
Los siguientes fueron el proceso y la especificación de pasar y analizar las variables en el script bash. La lógica de desplazar y modificar las variables está en manos del usuario. Esto fue solo una demostración de cómo pasar y analizar los argumentos desde la línea de comando al script para hacerlos más dinámicos.