Tomar argumentos de entrada opcionales en Bash
A veces necesitamos crear una función dinámica que pueda ejecutarse en ambos sin pasar ningún argumento o pasar argumentos. Para hacer esto, debemos establecer algunos valores predeterminados para estos argumentos de modo que si los argumentos no se aprobaron al llamar a la función, podría usar los argumentos predeterminados.
Este artículo demostrará cómo crear argumentos de entrada opcionales para una función. También veremos algunos ejemplos y explicaciones para facilitar el tema.
Tomar argumentos de entrada opcionales en Bash
En el siguiente ejemplo, imprimiremos los valores predeterminados. Declaramos 4 variables que contienen valores predeterminados.
El código de nuestro ejemplo se verá así:
VAR1=${1:-foo}
VAR2=${2:-bar}
VAR3=${3:-1}
VAR4=${4:-$(date)}
echo "$VAR1"
echo "$VAR2"
echo "$VAR3"
echo "$VAR4"
Después de la ejecución del código, obtendremos el siguiente resultado:
foo
bar
1
Sat Aug 13 14:59:31 +06 2022
Ahora veamos un ejemplo avanzado. En el ejemplo compartido a continuación, creamos una función que puede funcionar con los parámetros 0, 1 y 2 y establecer un valor predeterminado dentro de la función.
Ahora, el código de nuestro ejemplo tiene el siguiente aspecto:
FindSum()
{
VAR1=${1:-40}
VAR2=${2:-50}
if [ $# -lt 1 ];
then
echo "The provided parameters are: $VAR1, $VAR2."
elif [ $# -lt 2 ];
then
echo
echo "The provided parameters is: $VAR2."
else
echo
echo "No parameters provided"
VAR1=$1
VAR2=$2
fi
SUM=$((VAR1+VAR2))
echo "The sum of $VAR1 and $VAR2 is $SUM"
}
FindSum
FindSum 40
FindSum 70 30
Expliquemos el código parte por parte.
Primero, establecemos los valores por defecto de las variables usando las líneas VAR1=${1:-40}
y VAR2=${2:-50}
. Después de eso, verificamos si se dio o no el valor de estas variables.
Si el valor no los proporciona, tenemos que usar su valor predeterminado; de lo contrario, utilice el valor proporcionado por el usuario.
Por último, solo realizamos una operación de suma usando la línea SUM=$((VAR1+VAR2))
e imprimimos el resultado. Aquí, llamamos a la función sin ningún argumento por FindSum
.
Nuevamente, llamamos a la función con un argumento usando la línea FindSum 40
. Y llamamos a la función con dos argumentos usando la línea FindSum 70 30
.
The provided parameters are: 40, 50.
The sum of 40 and 50 is 90
The provided parameters is: 50.
The sum of 40 and 50 is 90
No parameters provided
The sum of 70 and 30 is 100
Todos los códigos utilizados en este artículo están escritos en Bash. Solo funcionará en el entorno Linux Shell.
Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.
LinkedIn