Algunos pasos para programar script shell en bash
A la hora de programar script shell, debes tener en cuenta en que te vas a encontrar básicamente con:
1- Comandos propios del operativo.
2- Comandos propios internos del shell Bash (ver: man bash).
3- Las estructuras de control propias de programación (for, while, …), con la sintaxis propia de Bash.
Como verás en el punto tres, que para usar estas estructuras de control propia de la programación, debes tener noción de programación. Sino la posees no te preocupes, te recomiendo un blog donde podrás bajar mucho material de lectura, pero especialmente un libro introductorio a la programación: http://www.freelibros.com/2009/06/fundamentos-de-programacion.html

Aquí sólo te pongo nociones generales que, después de leerte los fundamentos de programación, puedes progundizar.
La sintaxis básica de las estructuras de control es la siguiente:
a) Estructura if…then, se evalúa la expresión y si se obtiene un valor
cierto, entonces se ejecutan los commands.
if [ expresion ]
then
commands
fi
b) Estructura if..then…else, se evalúa la expresión, y si se obtiene un
valor de cierto, entonces se ejecutan los commands1, en caso contrario
se ejecutan los commands2:
if [ expresion ]
then
commands1
else
commands2
fi
c) Estructura if..then…else if…else, misma utilización que la anterior,
con anidamientos de estructuras if.
if [ expresion ]
then
commands
elif [ expresion2 ]
then
commands
else
commands
fi
d) Estructura case select, estructura de selección múltiple según valor
de selección (en case)
case string1 in
str1)
commands;;
str2)
commands;;
*)
commands;;
esac
e) Bucle for, sustitución de variable por cada elemento de la lista:
for var1 in list
do
commands
done
f) Bucle while, mientras se cumpla la expresión:
while [ expresion ]
do
commands
done
g) Bucle until, hasta que se cumpla la expresión:
until [ expresion ]
do
commands
done
h) Declaración de funciones:
fname() {
commands
}
o bien con llamada acompañada de parámetros:
fname2(arg1,arg2…argN) {
commands
}
y la llamadas de la función con fname o fname2 p1 p2 p3 … pN.













