Curso de Programación en Bash/S20.sh
Ir a la navegación
Ir a la búsqueda
S20.sh
1 #!/bin/sh
2
3 factorial()
4 {
5 if [ "$1" -gt "1" ]; then
6 i=`expr $1 - 1`
7 j=`factorial $i`
8 k=`expr $1 \* $j`
9 echo $k
10 else
11 echo 1
12 fi
13 }
14
15 while : ;do
16 echo -n "Quieres el factorial para que "
17 echo -n "número en el rango 1 - 20 "
18 echo -n "( 0 para salir ): "
19 read x
20 [ $x -gt 20 ] &&
21 {
22 echo -e "¡Ingreso inválido! \a"
23 echo "$x está fuera del rango 1 - 20"
24 continue
25 }
26 [ $x -eq 0 ] && break
27 factorial $x
28 done
Resultado
[rrc@Pridd BashClase]$ ./S20.sh Quieres el factorial para que número en el rango 1 - 20 ( 0 para salir ): 2 2 Quieres el factorial para que número en el rango 1 - 20 ( 0 para salir ): 3 6 Quieres el factorial para que número en el rango 1 - 20 ( 0 para salir ): 4 24 Quieres el factorial para que número en el rango 1 - 20 ( 0 para salir ): 5 120 Quieres el factorial para que número en el rango 1 - 20 ( 0 para salir ): 6 720 Quieres el factorial para que número en el rango 1 - 20 ( 0 para salir ): 7 5040 Quieres el factorial para que número en el rango 1 - 20 ( 0 para salir ): 8 40320 Quieres el factorial para que número en el rango 1 - 20 ( 0 para salir ): 9 362880 Quieres el factorial para que número en el rango 1 - 20 ( 0 para salir ): 10 3628800 Quieres el factorial para que número en el rango 1 - 20 ( 0 para salir ): 0 [rrc@Pridd BashClase]$