Curso de Programación en Bash/S20.sh

De WikiCabal
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]$ 

Explicación