Cómo leer argumentos de la línea de comandos en una fiesta

Cómo leer argumentos de la línea de comandos en una fiesta

Al trabajar con scripting bash, puede encontrar situaciones en las que necesita pasar argumentos a su script a través de la línea de comando. En este artículo, exploraremos las diferentes formas de leer los argumentos de la línea de comandos en Bash y proporcionar ejemplos de cada método.

¿Cuáles son los argumentos de la línea de comandos en Bash?

Los argumentos de la línea de comando en Bash son los parámetros que se pasan a un script o comando bash cuando se ejecuta desde la línea de comando. Se utilizan para personalizar el comportamiento del script o comando, y pueden incluir opciones, indicadores o valores que utilizan el script o el comando para realizar tareas específicas.

Cómo leer argumentos de la línea de comandos en una fiesta

Para modificar el comportamiento de los argumentos de la línea de comando de script se utilizan principalmente que incluyen opciones o banderas. Por ejemplo, es posible que tenga un script que realice una operación de copia de seguridad, y desea incluir una opción para especificar la carpeta de destino para la copia de seguridad. Estas son las tres formas en que se pueden leer los argumentos de la línea de comandos en el script bash:

    • Usando $ signo
    • Usando Shift
    • Usando el comando getops

Cómo leer los argumentos de la línea de comandos usando el comando $ en bash

La forma más básica de leer los argumentos de la línea de comandos en Bash es usar las variables $ 0, $ 1, $ 2, etc. Estas variables representan el nombre del script ($ 0) y los parámetros posicionales pasados ​​al script ($ 1, $ 2, etc.). Aquí hay un código BASH de ejemplo que usa el comando $ para leer argumentos de línea de comandos:

#!/bin/bash
echo "Nombre del script: $ 0"
echo "argumento1: $ 1"
Echo "Argumento2: $ 2"


Este script lee argumentos de línea de comandos en bash usando las variables de $ 0, $ 1 y $ 2. La variable de $ 0 contiene el nombre del script en sí, mientras que $ 1 y $ 2 contienen los argumentos de la línea de comandos de primer y segundo, respectivamente y para pasar los argumentos al script aquí es la sintaxis:


Aquí el nombre del archivo se puede incluir como argumento si comienzan desde $ 0 y así sucesivamente, este script lee argumentos de la línea de comandos en bash usando las variables de $ 0, $ 1 y $ 2. La variable de $ 0 contiene el nombre del script en sí, mientras que $ 1 y $ 2 contienen los argumentos de línea de comandos de primer y segundo, respectivamente y a continuación, el resultado es:

Cómo leer argumentos de línea de comandos usando el comando shift en bash

El comando "Shift" en Bash le permite cambiar los parámetros posicionales hacia la izquierda, descartar el primer argumento y mover el resto por una posición. Esto puede ser útil si necesita procesar argumentos en un bucle o si desea manejar argumentos en un orden específico. Aquí hay un ejemplo:

!/bin/bash
echo "Nombre del script: $ 0"
mientras ["$#" -gt 0]; hacer
echo "argumento1": $ 1
cambio
hecho


El script comienza imprimiendo el nombre del script usando la variable $ 0, que contiene el nombre del script como se le llamaba desde la línea de comando. La siguiente sección del script es un bucle de tiempo que verifica si hay algún argumento de línea de comando restante para procesar. Hace esto verificando el valor de la variable $# especial, que contiene el número de argumentos de la línea de comando.

El bucle luego imprime el argumento actual usando la variable de $ 1, que contiene el primer argumento, y luego usa el comando de cambio para eliminar el primer argumento de la lista de argumentos de línea de comando. Esto cambia todos los argumentos restantes en una posición, de modo que $ 1 se convierte en el segundo argumento, $ 2 se convierte en el tercer argumento, y así sucesivamente.

Cómo leer argumentos de línea de comandos usando getopts

El comando "getopts" en bash le permite analizar argumentos y opciones de la línea de comando, esto es útil cuando necesita dar argumentos o banderas opcionales a su script. Aquí hay un código de ejemplo que usa el comando getopts y lee dos argumentos desde la línea de comando:

#!/bin/bash
mientras que getopts ": a: b:" optar; hacer
caso $ opt en
a) arg1 = "$ Optarg"
;;
b) arg2 = "$ Optarg"
;;
\?) echo "opción inválida -$ optarg"> y 2
;;
ESAC
hecho
Echo "Argumento 1: $ Arg1"
Echo "Argumento 2: $ Arg2"


El comando getopts se usa para iterar sobre las opciones y argumentos de la línea de comando. Se necesitan dos argumentos: uno es una cadena de todas las opciones esperadas, y el otro es el nombre variable que contendrá el valor de la opción procesada actualmente.

En este script, las opciones esperadas son -a y -b, que son seguidas por sus argumentos correspondientes. El comando getopts analiza estas opciones y argumentos y los asigna a la variable $ opt.

La declaración de caso se usa para procesar cada opción. Si la opción es -a, el valor del argumento correspondiente se asigna a la variable $ arg1. Si la opción es -b, el valor del argumento correspondiente se asigna a la variable $ arg2. Si se detecta una opción no válida, se imprime un mensaje de error en la consola.

Después de que se han procesado todas las opciones y argumentos, el script imprime los valores de $ arg1 y $ arg2 en la consola utilizando el comando echo, aquí está el resultado para el código:

Conclusión

Los argumentos de la línea de comando en Bash se utilizan para pasar los parámetros a un script o comando cuando se ejecuta desde la línea de comandos. Pueden incluir valores, opciones o banderas que modifican el comportamiento del script, y son esenciales para personalizar el comportamiento de los scripts y comandos bash. Hay tres formas de leer los argumentos de la línea de comandos y esos son: usar $ signo, usar el comando getops y usar shift y todos estos se mencionan en esta guía.