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 pida información al usuario mientras se ejecuta. El comando read pausa el script y espera a que el usuario escriba algo, después almacena esa entrada en una variable.
Así es como funciona:
#!/bin/bash
echo "What is your name?"
read name
echo "Hello, $name!"Cuando se ejecuta este script, imprime la pregunta, espera a que el usuario escriba su nombre y presione Enter, después lo saluda. El comando read toma lo que escriba el usuario y lo almacena en la variable name.
Puedes hacer que el indicador sea más limpio usando la opción -p, que combina el mensaje del indicador 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 opción -p toma el texto del mensaje como argumento, seguido del nombre de la variable donde se almacenará la entrada.
La entrada del usuario hace que los scripts sean interactivos y adaptables. En lugar de codificar valores directamente, puedes escribir un script que funcione de manera diferente según lo que proporcione el usuario cada vez que lo ejecute.
Desafío
FácilCrea un script de shell llamado greeter.sh que pregunte al usuario por su color favorito y después muestre un mensaje usando su entrada.
Tu script debe:
- Comenzar con la línea shebang (
#!/bin/bash) - Usar
readcon la opción-ppara mostrar el mensaje:What is your favorite color? - Guardar la entrada en una variable llamada
color - Usar
echopara imprimir:Nice! [color] is a great color!(donde [color] es la entrada del usuario)
Haz que el script sea ejecutable y después ejecútalo con blue como entrada. Esta terminal no es interactiva; no puede detenerse y esperar a que escribas, así que envía la respuesta al script mediante una tubería:
echo "blue" | ./greeter.shTu salida debe ser:
Nice! blue is a great color!Nota: el mensaje
What is your favorite color?no se muestra aquí.read -psolo imprime su mensaje cuando la entrada proviene de un teclado, y aquí proviene de la tubería.
Encierra cada línea que escribas entre comillas simples:
echo 'echo "Hello $name"' >> script.sh. Las comillas simples impiden que el shell reemplace$namemientras se escribe el archivo, por lo que el script conserva la variable y la expande cuando se ejecuta. Las comillas dobles sustituirían el valor inmediatamente.
Pista: Construye el script línea por línea usando
echocon redirección. Usaread -p "What is your favorite color? " colorpara mostrar el mensaje y capturar la entrada, después usaecho "Nice! $color is a great color!"para mostrar el resultado.
Pruébalo tú mismo
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Directorios
Crear Un DirectorioCopiar Un DirectorioMover Y Renombrar Un DirectorioEliminar Un DirectorioResumen - Operaciones Con Directorios7Contenido de Archivos
Head y TailConteo de PalabrasComando SortComando UniqGrep BásicoGrep con FlagsResumen - Detective de Texto10Proyecto Analizador de Registros
Resumen del ProyectoVisualizando el Archivo de Registro13Fundamentos de Scripting en Shell
Qué es un Script de ShellCrear y Ejecutar un ScriptVariables en ScriptsEntrada de Usuario en ScriptsSentencia IfBucle ForBucle WhileRepaso - Adivina el Número2Navegación
Imprimir Directorio de TrabajoListar ArchivosCambiar de DirectorioRutas Absolutas vs RelativasDirectorio Home y RaízRepaso - Encuentra tu Camino8Redirección
Salida EstándarSobrescribir en un ArchivoAnexar a un ArchivoEntrada EstándarError EstándarResumen - Constructor de Registro11Permisos
Entendiendo PermisosLeyendo PermisosChmod con NúmerosChmod con SímbolosPropiedad de ArchivosResumen - Bloquéalo14Proyecto de Script de Copia de Seguridad
Visión General del ProyectoObteniendo la Ruta de Origen3Archivos
Crear un ArchivoLeer un ArchivoCopiar un ArchivoMover y Renombrar un ArchivoEliminar un ArchivoResumen - Operaciones con Archivos6Comodines y Patrones
El comodín asteriscoEl comodín interroganteComodines de corchetesCombinando comodinesRepaso - Operaciones selectivas9Tuberías
Qué es una tuberíaEncadenando dos comandosEncadenando múltiples comandosTubería con GrepResumen - Tubería de datosPractica por tu cuenta: Playground de Terminal