Maneras básicas de recibir entrada de usuarios en un script de Bash

Maneras básicas de recibir entrada de usuarios en un script de Bash

Bash es un lenguaje de scripting de Unix que se utiliza para escribir scripts que se ejecutan en el shell de Unix. La entrada del usuario es una parte importante de cualquier script, ya que permite la interacción entre el usuario y la computadora. En este artículo, discutiremos las diversas formas básicas de recibir entrada de usuario en un script de Bash.

📋 Aquí podrás encontrar✍
  1. Leer entrada del usuario con el comando read
  2. Leer entrada del usuario con un prompt
  3. Leer entrada del usuario sin mostrar la entrada
  4. Conclusión
  5. Preguntas frecuentes
    1. ¿Cómo puedo mostrar un mensaje de error si el usuario no proporciona una entrada?
    2. ¿Cómo puedo recibir múltiples entradas del usuario en un solo comando?
    3. ¿Cómo puedo recibir una entrada de usuario como un valor entero?
    4. ¿Cómo puedo recibir una entrada de usuario como un valor de coma flotante?
  6. Ejemplos de código

Leer entrada del usuario con el comando read

El comando read es utilizado para recibir entrada de usuario en un script de Bash. El comando lee una línea de entrada y la almacena en una variable. La sintaxis del comando read es la siguiente:

read variable

Se puede utilizar cualquier nombre de variable después del comando read para almacenar la entrada del usuario. Por ejemplo, si queremos recibir el nombre del usuario, podemos utilizar el siguiente código:

read nombre_usuario

El usuario escribirá su nombre y pulsará la tecla Enter. El nombre se almacenará en la variable nombre_usuario y podremos utilizarla en nuestro script.

Leer entrada del usuario con un prompt

Otra forma de recibir entrada de usuario es utilizando un prompt. Un prompt es un mensaje que se muestra al usuario y le indica lo que se espera de él. Para utilizar un prompt, podemos utilizar el comando read junto con el comando echo. La sintaxis es la siguiente:

echo "prompt" read variable

Por ejemplo, si queremos recibir el nombre del usuario mediante un prompt, podemos utilizar el siguiente código:

echo "Por favor, ingrese su nombre:" read nombre_usuario

El mensaje "Por favor, ingrese su nombre:" se mostrará al usuario antes de que el script solicite la entrada del usuario. El nombre se almacenará en la variable nombre_usuario y podremos utilizarla en nuestro script.

Leer entrada del usuario sin mostrar la entrada

En algunos casos, es posible que necesitemos recibir una entrada de usuario que no se muestre en la pantalla. Por ejemplo, cuando se solicita una contraseña. Para hacerlo, podemos utilizar el comando read con la opción -s. La sintaxis es la siguiente:

read -s variable

Por ejemplo, si queremos recibir la contraseña del usuario sin mostrarla en la pantalla, podemos utilizar el siguiente código:

read -s contraseña

El usuario escribirá la contraseña y pulsará la tecla Enter. La contraseña se almacenará en la variable contraseña y podremos utilizarla en nuestro script.

Conclusión

En este artículo, hemos discutido las diversas formas básicas de recibir entrada de usuario en un script de Bash. Utilizando el comando read, podemos recibir entrada del usuario y almacenarla en una variable. Utilizando un prompt, podemos mostrar un mensaje al usuario antes de recibir su entrada. Y utilizando la opción -s del comando read, podemos recibir entrada de usuario sin mostrarla en la pantalla.

Preguntas frecuentes

¿Cómo puedo mostrar un mensaje de error si el usuario no proporciona una entrada?

Podemos utilizar una estructura de control if para comprobar si la variable de entrada tiene una longitud de cadena de cero. Si la longitud de cadena es cero, significa que el usuario no ha proporcionado ninguna entrada y podemos mostrar un mensaje de error.

if [ -z "$nombre" ] then echo "Por favor, ingrese su nombre." fi

¿Cómo puedo recibir múltiples entradas del usuario en un solo comando?

Podemos utilizar el comando read con la opción -a para almacenar múltiples entradas del usuario en un array. La sintaxis es la siguiente:

read -a array

Por ejemplo, si queremos recibir los nombres de tres usuarios, podemos utilizar el siguiente código:

read -a usuarios echo "Los usuarios son: ${usuarios[0]}, ${usuarios[1]} y ${usuarios[2]}."

¿Cómo puedo recibir una entrada de usuario como un valor entero?

Podemos usar la opción -n del comando read, que le indica al comando que lea solo un número determinado de caracteres. Luego, podemos utilizar la función de aritmética del shell para convertir la cadena en un valor entero. La sintaxis es la siguiente:

read -n 2 numero resultado=$((numero+1))

El usuario escribirá un número de dos dígitos y el valor se convertirá en un número entero y se almacenará en la variable resultado.

¿Cómo puedo recibir una entrada de usuario como un valor de coma flotante?

Podemos utilizar el comando bc, que es una calculadora de precisión arbitraria en lenguaje de shell, para convertir una cadena en un valor de coma flotante. La sintaxis es la siguiente:

read numero resultado=`echo "$numero" | bc`

El usuario escribirá un número y el valor se convertirá en un número de coma flotante y se almacenará en la variable resultado.

Ejemplos de código

1. Ejemplo de código para recibir el nombre del usuario:

echo "Por favor, ingrese su nombre:" read nombre_usuario echo "Hola, $nombre_usuario. ¡Bienvenido al script de Bash!"

2. Ejemplo de código para recibir una contraseña del usuario:

echo "Por favor, ingrese su contraseña:" read -s contraseña echo "La contraseña es: $contraseña."

3. Ejemplo de código para recibir múltiples entradas del usuario en un array:

echo "Por favor, ingrese los nombres de tres usuarios:" read -a usuarios echo "Los usuarios son: ${usuarios[0]}, ${usuarios[1]} y ${usuarios[2]}."

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir