read
read
sirve para leer input de la terminal y guardarlo en una variable (o dos, si se especifican espacios). read var1
. Si no se especifica una variable se almacena en $REPLY
- se puede aprovechar para ignorar input de read
.
read.sh
#!/usr/bin/env bash
echo -n "Introduce nombre y apellido: "
read nombre apellido
echo "Tu nombre es ${nombre} y ${apellido}."
exit 0
$ bash read.sh
# Introduce nombre y apellido: Joseph Smith
# Tu nombre es Joseph y tu apellido es Smith.
La opción -r
sirve para interpretar \
literalmente (en lugar de permitir varias líneas).
Hay otras opciones, pero hay que usarlas en el orden correcto para que funcionen.
Opción | Descripción |
---|---|
-s |
no hace eco del input |
-n |
especifica el número de caracteres de input que acepta, y no detecta enter como opción |
-p |
imprime el siguiente mensaje antes del input |
-r |
interpreta \ literalmente |
-t |
temporizado; si no hay input sale del programa |
También se pueden guardar líneas de un archivo a una variable.
read2.sh
#!/usr/bin/env bash
read -s -n1 -p "Introduce una tecla" tecla
echo
echo "Has introducido la tecla ${tecla}."
exit 0
$ bash read2.sh
# Introduce una tecla
# Has introducido la tecla a.
Se puede formatear mejor utilizando las opciones de shell.
Algunas teclas tienen un código especial: flecha arriba \[A
, flecha abajo \[B
, flecha derecha \[C
, flecha izquierda \[D
, insertar \[2
y borrar \[3
.