También es habitual que en nuestros scripts necesitemos de algún dato, mismo que puede ser tecleado por el usuario y que necesitemos guardar en una variable, para ello usaremos read.

Por ejemplo:
#!/bin/bash
echo -n "Cual es tu nombre: "
read NOMBRE
read -p "Cual es tu color favorito $NOMBRE: " COLOR
read -p "Cual es tu edad $NOMBRE: " EDAD
Obtendríamos una salida como:
Cual es tu nombre: jorge
Cual es tu color favorito jorge: negro
Cual es tu edad jorge: 18

Si quisiéramos jugar un poco mas con esta información tenemos a nuestra disposición estructuras de control como en todos los lenguajes de programación.

if..then..else

El uso de las condiciones te puede resultar muy familiar, así que mostrare unos sencillos ejemplos para que los identifiquemos.Una condición sencilla:

if [ $COLOR = "negro" ]; then
    echo "El negro es un enigmático color, lleno de misterio."
fi
 
Una condición con else:
if [ $COLOR = "negro" ]; then
    echo "El negro es un enigmático color, lleno de misterio."
else
    echo "El color $COLOR no me gusta, me gusta mas el negro."
fi
 
Un ejemplo mas (aquí debes ser mas observador):
if [ $EDAD -ge 18 ]; then
    echo "Veo que ya eres mayor de edad."
else
    echo "Ya pronto serás mayor de edad."
fi
 

Como vemos, en las condiciones podemos usar los operadores que conocemos como >, <, =, pero en el último ejemplo el operador cambio a un -ge que sería el equivalente a >=, y si eres curioso y probaste intentar con un if [ $EDAD >= 18 ] te darás cuenta que al correr el script te arrojara un error en esa linea argumentando que esperaba un operador unario.

Por ello el uso del los atributos -ge (mayor o igual que), empero, si somos necios y queremos usar >=, pues lo haríamos usando dobles paréntesis y quedaría de la siguiente forma.

if (($EDAD >= 18)); then
    echo "Veo que ya eres mayor de edad."
else
    echo "Ya pronto serás mayor de edad."
fi
Aquí pongo una lista de los operadores que podemos usar:

En las condiciones también podemos trabajar para comprobar por ejemplo la existencia de un archivo, o bien, comparar si un archivo tiene permiso de escritura, o que se yo, algo que se nos ocurra.

ARCHIVO="script01"
if [ -f $ARCHIVO ]; then
    echo "el fichero $FILE si existe"
else
    echo "fichero no encontrado"
fi

Jorge Hernandez :: http://jorgeluis.com.mx

    Programación en Bash Linux VI: Utilerias [test, select] Programación en Bash Linux IV: Estructuras [for, while, until]