Ala, pues lo dicho a enseñar, aqui os dejo una script grafica que yo mismo he hecho para uno de mis programas
#!/bin/bash
#Autor hadrianweb
#Nombre completo: Adrian Campos Garrido
TMP=/home/rai/adrian.campos/tmp
algoritmo=1
funcionesdicoto=1
funcionesdicoto1=1
funcionessecante=1
funcionessecante1=1
funcionesitf=1
funcionesnew=1
function=1
funcion=1
rm -rf $TMP
mkdir -p $TMP
# Menu Principal(menu algoritmos)
dialog --title "Adrian Campos Garrido" \
--menu "Elija el programa que desea utilizar. \
Luego pulse enter \
Para continuar Escoja la opcion que desea utilizar:\ " 0 0 0 \
"1" "Algoritmo de Dicotomia" \
"2" "Algoritmo de la Secante y Regula Falsi" \
"3" "Algoritmo de Iteracion Funcional y Aitken" \
"4" "Algoritmo de Newton-Raphson y Schröder" \
"5" "Algoritmo de Schröder para (x-1)**3*(x+3)" \
2> $TMP/reply
#Menu Funciones
dialog --title "Adrian Campos Garrido" \
--menu "Menu De Funciones. \
Opciones:\ " 0 0 0 \
"1" "Insertar Funcion" \
"2" "Funciones Predefinidas" \
2> $TMP/function
funcion="`cat $TMP/function`"
if [ "$funcion" = "1" ]; then
algoritmo="`cat $TMP/reply`"
if [ "$algoritmo" = "1" ]; then
cd /home/rai/adrian.campos/diricn/dirfundicoto
./scriptdicoto.sh
cd /home/rai/adrian.campos/diricn/dirdicoto
macroc 99
macrol 99
./ppal_dicoto.out
exit
elif [ "$algoritmo" = "2" ]; then
exit
elif [ "$algoritmo" = "3" ]; then
exit
elif [ "$algoritmo" = "4" ]; then
exit
elif [ "$algoritmo" = "5" ]; then
exit
fi
elif [ "$funcion" = "2" ]; then
algoritmo="`cat $TMP/reply`"
if [ "$algoritmo" = "1" ]; then
#Menu funciones Dicotomia
dialog --title "Adrian Campos Garrido" \
--menu "Has esojido el algoritmo de Dicotomia. \
Escoja su opcion y luego pulse enter \
Opciones:\ " 0 0 0 \
"1" "f=exp(-x) - x" \
"2" "f=x - tan(x)" \
"3" "f=log(x) - 5. + x" \
"4" "f=8.*x**3 - 24.*x**2 + 16.*x - 3." \
"5" "Mas Funciones" \
2> $TMP/funcionesdicoto
funcionesdicoto="`cat $TMP/funcionesdicoto`"
if [ "$funcionesdicoto" = "1" ]; then
clear
cd /home/rai/adrian.campos/diricn/dirdicoto
macroc 1
macrol 1
./ppal_dicoto.out
elif [ "$funcionesdicoto" = "2" ]; then
clear
cd /home/rai/adrian.campos/diricn/dirdicoto
macroc 2
macrol 2
./ppal_dicoto.out
elif [ "$funcionesdicoto" = "3" ]; then
clear
cd /home/rai/adrian.campos/diricn/dirdicoto
macroc 3
macrol 3
./ppal_dicoto.out
elif [ "$funcionesdicoto" = "4" ]; then
clear
cd /home/rai/adrian.campos/diricn/dirdicoto
macroc 4
macrol 4
./ppal_dicoto.out
elif [ "$funcionesdicoto" = "5" ]; then
dialog --title "Adrian Campos Garrido" \
--menu "Elija La funcion a utilizar. \
Luego pulse enter \
Para continuar escoja la funcion que desea:\ " 0 0 0 \
"6" "f=x**3 - x - 1." \
"7" "f=2**x - 5.*x + 2." \
"8" "f=x**3 - 13.*x**2 + 40.*x - 25." \
"9" "f=2.5*x - exp(x) + exp(-x)" \
2> $TMP/funcionesdicoto1
funcionesdicoto1="`cat $TMP/funcionesdicoto1`"
if [ "$funcionesdicoto1" = "6" ]; then
clear
cd /home/rai/adrian.campos/diricn/dirdicoto
macroc 5
macrol 5
./ppal_dicoto.out
elif [ "$funcionesdicoto1" = "7" ]; then
clear
cd /home/rai/adrian.campos/diricn/dirdicoto
macroc 6
macrol 6
./ppal_dicoto.out
elif [ "$funcionesdicoto1" = "8" ]; then
clear
cd /home/rai/adrian.campos/diricn/dirdicoto
macroc 7
macrol 7
./ppal_dicoto.out
elif [ "$funcionesdicoto1" = "9" ]; then
clear
cd /home/rai/adrian.campos/diricn/dirdicoto
macroc 8
macrol 8
./ppal_dicoto.out
fi
fi
exit
elif [ "$algoritmo" = "2" ]; then
#Menu funciones Secante
dialog --title "Adrian Campos Garrido" \
--menu "Has escogido el Algoritmo de la Secante. \
Escoja su opcion y luego pulse enter \
Opciones:\ " 0 0 0 \
"1" "f=exp(-x) - x" \
"2" "f=x - tan(x)" \
"3" "f=log(x) - 5. + x" \
"4" "f=8.*x**3 - 24.*x**2 + 16.*x - 3." \
"5" "Mas Funciones" \
2> $TMP/funcionessecante
funcionessecante="`cat $TMP/funcionessecante`"
if [ "$funcionessecante" = "1" ]; then
clear
cd /home/rai/adrian.campos/diricn/dirsrf
macroc1 1
macrol1 1
./principal.out
elif [ "$funcionessecante" = "2" ]; then
clear
cd /home/rai/adrian.campos/diricn/dirsrf
macroc1 2
macrol1 2
./principal.out
elif [ "$funcionessecante" = "3" ]; then
clear
cd /home/rai/adrian.campos/diricn/dirsrf
macroc1 3
macrol1 3
./principal.out
elif [ "$funcionessecante" = "4" ]; then
clear
cd /home/rai/adrian.campos/diricn/dirsrf
macroc1 4
macrol1 4
./principal.out
elif [ "$funcionessecante" = "5" ]; then
dialog --title "Adrian Campos Garrido" \
--menu "Elija La funcion a utilizar. \
Luego pulse enter \
Para continuar escoja la funcion que desea:\ " 0 0 0 \
"6" "f=x**3 - x - 1." \
"7" "f=2**x - 5.*x + 2." \
"8" "f=x**3 - 13.*x**2 + 40.*x - 25." \
"9" "f=2.5*x - exp(x) + exp(-x)" \
2> $TMP/funcionessecante1
funcionessecante1="`cat $TMP/funcionessecante1`"
if [ "$funcionessecante1" = "6" ]; then
clear
cd /home/rai/adrian.campos/diricn/dirsrf
macroc1 5
macrol1 5
./principal.out
elif [ "$funcionessecante1" = "7" ]; then
clear
cd /home/rai/adrian.campos/diricn/dirsrf
macroc1 6
macrol1 6
./principal.out
elif [ "$funcionessecante1" = "8" ]; then
clear
cd /home/rai/adrian.campos/diricn/dirsrf
macroc1 7
macrol1 7
./principal.out
elif [ "$funcionessecante1" = "9" ]; then
clear
cd /home/rai/adrian.campos/diricn/dirsrf
macroc1 8
macrol1 8
./principal.out
fi
fi
exit
elif [ "$algoritmo" = "3" ]; then
#Menu funciones Iteracion Funcional y Aitken
dialog --title "Adrian Campos Garrido" \
--menu "Has escogido el Algoritmo de Iteracion Funcional y Aitken. \
Escoja su opcion y luego pulse enter \
Opciones:\ " 0 0 0 \
"1" "f=exp(-x) (funcion 1)" \
"2" "f=3.1415926535 + atan(x) (funcion 2)" \
"3" "f=(1. + x)**(1./3) (funcion 5)" \
"4" "f=(2.**x + 2.)/5 (funcion 6)" \
"5" "f=-2*log10((0.1/3.7)+(2.51*x/5000)) (funcion 9)" \
2> $TMP/funcionesitf
funcionesitf="`cat $TMP/funcionesitf`"
if [ "$funcionesitf" = "1" ]; then
clear
cd /home/rai/adrian.campos/diricn/diritf
macroc 1
macrol 1
./principal.out
elif [ "$funcionesitf" = "2" ]; then
clear
cd /home/rai/adrian.campos/diricn/diritf
macroc 2
macrol 2
./principal.out
elif [ "$funcionesitf" = "3" ]; then
clear
cd /home/rai/adrian.campos/diricn/diritf
macroc 5
macrol 5
./principal.out
elif [ "$funcionesitf" = "4" ]; then
clear
cd /home/rai/adrian.campos/diricn/diritf
macroc 6
macrol 6
./principal.out
elif [ "$funcionesitf" = "5" ]; then
clear
cd /home/rai/adrian.campos/diricn/diritf
macroc 9
macrol 9
./principal.out
fi
exit
elif [ "$algoritmo" = "4" ]; then
#Menu funciones Iteracion Funcional y Aitken
dialog --title "Adrian Campos Garrido" \
--menu "Has escogido el Algoritmo de Newton-Raphson y Schröder. \
Escoja su opcion y luego pulse enter \
Opciones:\ " 0 0 0 \
"1" "f=exp(-x) -x (funcion 1)" \
"2" "f= x**3 - x - 1 (funcion 5)" \
"3" "f=2**x - 5*x + 2 (funcion 6)" \
"4" "f=x**3 - 13*x**2 + 4*x - 25 (funcion 7)" \
"5" "f=2.5*x - exp(x) + exp(-x) (funcion

" \
2> $TMP/funcionesnew
funcionesnew="`cat $TMP/funcionesnew`"
if [ "$funcionesnew" = "1" ]; then
clear
cd /home/rai/adrian.campos/diricn/dirnewton
macroc 1
macrol 1
./principal.out
elif [ "$funcionesnew" = "2" ]; then
clear
cd /home/rai/adrian.campos/diricn/dirnewton
macroc 2
macrol 2
./principal.out
elif [ "$funcionesnew" = "3" ]; then
clear
cd /home/rai/adrian.campos/diricn/dirnewton
macroc 3
macrol 3
./principal.out
elif [ "$funcionesnew" = "4" ]; then
clear
cd /home/rai/adrian.campos/diricn/dirnewton
macroc 4
macrol 4
./principal.out
elif [ "$funcionesnew" = "5" ]; then
clear
cd /home/rai/adrian.campos/diricn/dirnewton
macroc 5
macrol 5
./principal.out
fi
exit
elif [ "$algoritmo" = "5" ]; then
clear
cd /home/rai/adrian.campos/diricn/dirnewton
macroc 6
macrol 6
./principal.out
exit
fi
exit
fi