¿Cómo manejar los argumentos de la línea de comandos en Bash?

Como Manejar Los Argumentos De La Linea De Comandos En Bash



En Linux, usamos argumentos de línea de comandos como entrada para el script bash. Bash puede tomar estos argumentos de la línea de comandos secuencialmente y analizarlos como una opción. Estos argumentos le permiten afectar las acciones y la salida del script dinámicamente.

Puede configurar estos argumentos de manera diferente para influir en la entrada y la salida. Es por eso que el manejo de argumentos de línea de comandos en bash es esencial, pero muchos usuarios nuevos necesitan aprender a hacerlo. Entonces, en esta guía, explicaremos diferentes formas de manejar los argumentos de la línea de comandos en bash.







¿Cómo manejar los argumentos de la línea de comandos en Bash?

Hay varias formas de manejar los argumentos de la línea de comandos en Bash, así que echemos un vistazo a ellos para obtener información breve:



La función getopt



La función getopt es útil ya que proporciona las opciones y la sintaxis para definir y analizar argumentos en bash. Es una función integrada de Linux que puede usar al crear un archivo de base de datos o un informe en un formato específico basado en los argumentos. La función getopt ayuda a analizar los argumentos cortos de la línea de comandos porque hay dos tipos de argumentos:





  • Argumentos cortos: Estos son los argumentos de un solo carácter seguidos de un guión. Por ejemplo, -a, -l, -h, etc., son algunos ejemplos de argumentos únicos.

 

  • Argumentos largos: Estos son los argumentos de varios caracteres seguidos de un guión doble. Hay varios ejemplos de argumentos largos, como –all, –list, –help, etc.

Tomemos un ejemplo donde manejaremos los argumentos de la línea de comando usando la utilidad getopt. Hemos creado un script bash llamado 'getopt.sh' que contiene la siguiente información:



!/ compartimiento / intento

tiempo obtener opciones 'A B C D:' detalles; hacer

caso ' $detalles ' en

A )

eco 'El nombre del ciudadano es $OPTARG ' ;;

B )

eco 'La identificación de ciudadano es $OPTARG ' ;;

C )

eco 'Lugar de nacimiento es $OPTARG ' ;;

D )

eco 'La ocupación es $OPTARG ' ;;

* )

salida 1 ;;

esac

hecho

cambio ' $(($OPTANDO -1) )'

 

si [ ! -Con $1 ] ; después

eco 'Estado civil $1'

más

eco 'No entrar'

salida 1

ser

 

si [ ! -Con $2 ] ; después

eco 'Miembros de la familia $2'

ser

Ahora ejecutemos el script con los argumentos requeridos en la entrada:

Como puede ver en la imagen de arriba, ejecutamos el script solo con funciones getopt y luego agregamos argumentos normales para obtener el resultado completo.

Uso de banderas

Las banderas no son más que caracteres individuales precedidos por guiones (-). Cuando pasamos los argumentos usando la función getopt, usamos banderas. -a, -b, -c son algunos ejemplos de banderas. Por ejemplo, un guión requiere el nombre, la identificación, el lugar, la edad y la ocupación de un ciudadano. Por lo tanto, usamos las banderas j, k, l, m, n, para definir el nombre, la identificación, el lugar, la edad y la ocupación del ciudadano simultáneamente:

#!/bin/bash

Tiempo obtener opciones j:k:l:m:n: flag_info

hacer

caso ' ${flag_info} ' en
< viejo >
    < que > j ) nombre del ciudadano = ${OPTARG} ;; que >
    < que > k ) Identificación ciudadana = ${OPTARG} ;; que >
    < que > yo ) lugar = ${OPTARG} ;; que >
    < que > metro ) años = ${OPTARG} ;; que >
    < que > norte ) ocupación = ${OPTARG} ;; que >
viejo >
esac

hecho

eco 'Aquí están los detalles ingresados:'

eco 'Nombre del ciudadano: $nombre del ciudadano ' ;

eco 'Identificación ciudadana: $ciudadanoid ' ;

eco 'Lugar: $lugar ' ;

eco 'Años: $edad ' ;

eco 'Ocupación: $ocupación ' ;

El script dará el siguiente resultado en la terminal:

. /< guion > .sh -j dany -k 476 -l toronto -metro 25 -norte Autor

Usando [correo electrónico protegido] con bucles

Los ' [correo electrónico protegido] La variable no es más que la matriz de todos los argumentos de entrada. Podemos pasar cualquier número de entradas usando el ' [correo electrónico protegido] ' variable. Puede usar esta variable como un bucle para iterar a través de los argumentos. Los ' [correo electrónico protegido] La variable ” viene muy bien entonces; no conoce el tamaño de entrada y no puede tomar los argumentos posicionales. Por lo tanto, puede utilizar el ' [correo electrónico protegido] ” en lugar de definir la función getopt una y otra vez. Aquí hay un ejemplo del uso de bucles y [correo electrónico protegido] juntos en un guión:

#!/bin/bash

en uno = ( “$ @ )

 

si [ $# -gt 1 ]

después

 

agregar =$ ( ( ${número[0]} + ${número[1]} ) )

eco 'La suma de todos los números es: $añadir '

 

sustracción =$ ( ( ${número[0]} - ${número[1]} - ${número[2]} ) )

eco 'La resta de los números es: $resta '

 

multiplicar =$ ( ( ${número[0]} * ${número[1]} * ${número[2]} ) )

eco 'La multiplicación de los números es: $multiplicar '

 

división 1 =$ ( ( ${número[0]} / ${número[1]} ) )

eco 'División de la ${número[0]} y ${número[1]} es: $división1 '

 

division2 =$ ( ( ${número[1]} / ${número[2]} ) )

eco 'Division de ${número[1]} y ${número[2]} es: $división2 '

 

division3 =$ ( ( ${número[0]} / ${número[2]} ) )

eco 'Division de ${número[0]} y ${número[2]} es: $división2 '

 

ser

El script anterior realiza diferentes cálculos aritméticos basados ​​en los argumentos de la línea de comandos. Por ejemplo, hemos ingresado 50, 35 y 15 como entrada:

Uso de parámetros posicionales

Puede acceder a los parámetros posicionales a medida que acceden primero a $1, luego a $2, y así sucesivamente. Por ejemplo, creemos un script que lea un nombre como primer argumento y luego una ciudad como segundo. Sin embargo, si pasa primero la ciudad y luego el nombre, entonces considera el nombre como la ciudad y viceversa. Profundicemos más en el siguiente script para comprender este concepto:

#!/bin/bash

eco 'Aquí están los detalles ingresados'

eco 'nombre $1'

eco 'ciudad $2'

Debe agregar el nombre y la ciudad al momento de ejecutar el script en la terminal:

Terminando

Esto es todo lo que necesita saber sobre los métodos para manejar los argumentos de la línea de comandos en bash. Hemos explicado diferentes enfoques que puede probar con los ejemplos apropiados. Hay varios comandos si desea agregar argumentos en el script. Así que asegúrese de visitar Linuxhint para obtener más información sobre ellos.