¿Cómo paso un argumento en un script de bash?

How Do I Pass Argument Bash Script



La mayoría de los usuarios de Linux Mint 20 se quedan atascados al pasar un argumento en un script bash. Puede pasar los argumentos a cualquier script bash cuando se ejecuta. Hay varias formas sencillas y útiles de pasar argumentos en un script bash. En esta guía de artículos, le informaremos sobre algunas formas muy fáciles de pasar y usar argumentos en sus scripts de bash.

Pasar argumentos usando variables predeterminadas:

Cree un nuevo archivo con cualquier nombre usando el comando táctil, por ejemplo, file.sh.







$tocarnombre del archivo



Abra este archivo recién creado y agregue algún script bash. He agregado algunas variables predeterminadas, p. Ej. $ 1, $ 2 y $ 3 en consecuencia. Los argumentos que se pasen a través de la terminal se almacenarán en las variables indicadas.







Tienes que ejecutar este archivo usando el comando ./ seguido de algunos argumentos. Como puede ver en la imagen que al pasar los argumentos, se produce un error: Permiso denegado. Esto se debe a que este archivo no tiene derechos de ejecución.

$./nombre de archivo argumento1 argumento2 argumento

Entonces, para otorgar los derechos de ejecución a este archivo, use el comando sudo chmod para hacerlo.



$sudo chmod+ x nombre de archivo

Ahora, vuelva a ejecutar el archivo con el mismo comando anterior. Esta vez he proporcionado diferentes argumentos. Verá que los argumentos recién pasados ​​se almacenan en las variables predeterminadas.

Pasar el nombre de la secuencia de comandos de Shell como argumento:

Ahora, usando el mismo archivo antiguo file.sh con un pequeño cambio en sus variables predeterminadas. Debe agregar la variable $ 0 en el script como se muestra.

Al ejecutar el mismo comando de script ./ shell, el nombre de su script de shell, p. Ej. ./filename se almacenará en la variable $ 0 como argumento.

Pasar argumentos como una matriz a una variable:

Comenzando con el mismo archivo file.sh, debe agregar algunas líneas adicionales en el antiguo script. Declare una variable llamada matriz. Agregue una variable predeterminada [protegido por correo electrónico] que almacenará los argumentos ingresados ​​por el usuario como una matriz. Estos argumentos se analizarán en una matriz de variables. La última línea mostrará todos los argumentos de la matriz de variables ordenados por el número de índice.

Ejecute el script ./ shell. Verá que mostrará los argumentos o valores almacenados como una matriz en [email protected] analizados en una matriz de variables, pero no el nombre del script de shell en la segunda declaración de eco. Tendrá la siguiente salida.

$./nombre de archivo argumento1 argumento2 argumento

Utilice el mismo archivo con el mismo script. Simplemente elimine $ {array [3]} de la última línea como se muestra en la imagen.

Después de ejecutar el comando ./, verá un resultado similar al que obtuvo en el ejemplo anterior sin cambios.

También puede obtener el mismo resultado reemplazando la última línea del script bash con una sola palabra. Solo tiene que agregar [email protected] en la declaración echo, y mostrará los argumentos presentes en esta matriz de variables.

Entonces, ejecutando el comando ./ nuevamente, obtendrá los mismos resultados.

Verifique el número total de argumentos aprobados:

Por el contrario, si desea conocer el número total de argumentos pasados ​​por el usuario, también puede hacerlo. Para este propósito, solo tiene que reemplazar [email protected] con $ # en echo.

Nuevamente ejecutando el comando ./, ahora verá la figura completa de argumentos pasados ​​al script. En nuestro caso, se pasan 3 argumentos como valor.

Crear salida línea por línea de argumentos:

Cree un nuevo archivo test.sh en el directorio de inicio. Agregue el script bash como se muestra.

Ahora ejecute el mismo comando antiguo con diferentes argumentos. En primer lugar, verá el error: Permiso denegado.

Debe ejecutar el comando chmod para otorgar privilegios de sudo a este archivo. Después de eso, ejecute el comando de script ./ shell nuevamente. Y obtendrá la salida de argumentos ordenada línea por línea.

Limite la variable a través del número de índice de argumento:

Si desea limitar la variable usando su número de índice, puede hacerlo muy fácilmente. Agregue corchetes después del signo $ y agregue el número de índice del argumento que desea mostrar antes de otros argumentos.

Si los argumentos proporcionados por los usuarios son menores que el número de índice proporcionado en la variable límite, obtendrá un valor de argumento vacío. Como ejemplo, he proporcionado 4 argumentos, pero he dado el valor del argumento 05 para que se muestre. En esta situación, la variable se mostrará vacía porque no se ha pasado el quinto argumento.

Pero cuando pasa el número igual o mayor de argumentos en el comando, obtendrá el valor que se muestra en el resultado como se muestra.

Comprobación de argumentos de valor específicos:

Cree un nuevo archivo con el nombre Check.sh en su directorio personal. Agregue el mismo script bash como se muestra en la imagen de abajo. En este script, tenemos una variable var para almacenar el valor del argumento pasado por el usuario. Luego tenemos una declaración if, que verificará si el valor del argumento coincide o no. Si el valor del argumento coincide con el valor proporcionado entre paréntesis, se ejecutará la primera instrucción de eco. Si el valor no coincide, se ejecutará la segunda instrucción de eco.

Cuando ejecutamos el comando del script de shell, generará un error. Al usar el comando chmod, podemos corregir este error.

Después de eso, ejecute el script de shell para el archivo en particular con algún valor de argumento. En nuestro caso, hemos proporcionado Aqsa como valor de argumento, que es el mismo que el valor mostrado entre paréntesis. Entonces, el script bash ejecutará la primera declaración de eco como se muestra.

Por otro lado, si proporciona los diferentes valores de argumento en el script de shell, mostrará la otra declaración de eco. Aquí, he agregado Rimsha como valor de argumento, que es diferente del valor proporcionado en la declaración if. Entonces, el script bash ejecutará la segunda declaración de eco.

Conclusión:

Espero que esta guía le haya ayudado lo suficiente a tener un fuerte control sobre cómo pasar argumentos a las variables predeterminadas, pasar el valor del argumento como una matriz a una variable, obtener el número total de argumentos pasados, salida de argumentos línea por línea, limitar el argumento salida usando el número de índice, verificando el argumento de valor específico y muchos más.