Menu
Coddy logo textTech

Entrada de Usuario en Scripts

Parte de la sección Fundamentos del Journey de Terminal de Coddy — lección 69 de 82.

Las variables son útiles, pero a veces quieres que tu script le pida información al usuario mientras se ejecuta. El comando read pausa el script y espera a que el usuario escriba algo, luego almacena esa entrada en una variable.

Así es como funciona:

#!/bin/bash
echo "What is your name?"
read name
echo "Hello, $name!"

Cuando este script se ejecuta, imprime la pregunta, espera a que el usuario escriba su nombre y presione Enter, luego los saluda. El comando read toma lo que el usuario escribe y lo almacena en la variable name.

Puedes hacer el prompt más limpio usando la bandera -p, que combina el mensaje del prompt y la entrada en la misma línea:

#!/bin/bash
read -p "Enter your name: " name
echo "Hello, $name!"

Esto muestra Enter your name: y espera la entrada en la misma línea, lo que se ve más pulido. La bandera -p toma el texto del prompt como su argumento, seguido del nombre de la variable para almacenar la entrada.

La entrada del usuario hace que los scripts sean interactivos y adaptables. En lugar de codificar valores de forma fija, puedes escribir un script que funcione de manera diferente según lo que el usuario proporcione cada vez que lo ejecute.

challenge icon

Desafío

Fácil

Crea un script de shell llamado greeter.sh que pregunte al usuario su color favorito y luego muestre un mensaje usando su entrada.

Tu script debe:

  1. Comenzar con la línea shebang (#!/bin/bash)
  2. Usar read con la bandera -p para solicitar: What is your favorite color?
  3. Almacenar la entrada en una variable llamada color
  4. Usar echo para imprimir: Nice! [color] is a great color! (donde [color] es la entrada del usuario)

Haz que el script sea ejecutable y ejecútalo. Cuando se te solicite, ingresa blue como tu respuesta.

Tu salida debe ser:

What is your favorite color? blue
Nice! blue is a great color!

Pista: Construye el script línea por línea usando echo con redirección. Usa read -p "What is your favorite color? " color para solicitar y capturar la entrada, luego echo "Nice! $color is a great color!" para mostrar el resultado.

Hoja de referencia

El comando read pausa el script y espera la entrada del usuario, luego la almacena en una variable:

#!/bin/bash
echo "What is your name?"
read name
echo "Hello, $name!"

Utiliza la bandera -p para mostrar el prompt y la entrada en la misma línea:

#!/bin/bash
read -p "Enter your name: " name
echo "Hello, $name!"

La bandera -p toma el texto del prompt como su argumento, seguido del nombre de la variable para almacenar la entrada.

Pruébalo tú mismo

Terminal
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos