Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: minette1988 en 8 Mayo 2010, 14:13 pm



Título: multipliación de un número
Publicado por: minette1988 en 8 Mayo 2010, 14:13 pm
Hola, tengo que mostrar la tabla de multiplicar de un número pasado como argumento, pero no me funciona:

Código
  1. #!/bin/bash
  2.  
  3. n=1
  4.  
  5. while [ $n -le 10 ]
  6. do
  7.   multi= `expr $1 \* $n`
  8.   echo $1 * $n = $multi
  9.   n = `expr $n + 1`
  10. done
  11.  


Título: Re: multipliación de un número
Publicado por: -- KiLiaN -- en 8 Mayo 2010, 16:00 pm
Usa for.


Título: Re: multipliación de un número
Publicado por: leogtz en 8 Mayo 2010, 18:38 pm
Prueba esto:

Código
  1. #!/usr/bin/bash
  2. let count=1
  3. let multiplicacion=1
  4. while [ $count -le 10 ]
  5. do
  6. let multiplicacion="$count * $1";
  7. echo -e "$1 * $count = $multiplicacion";
  8. let count+=1
  9. done
  10.  

Código
  1. #!/usr/bin/bash
  2. if [ $# -ne 1 ];
  3. then
  4. echo -e "Error de argumentos";
  5. exit 1;
  6. fi
  7. count=1
  8. multi=1 # Inicializamos a 1.
  9. while [ $count -le 10 ];
  10. do
  11. multi=`expr $1 \* $count`
  12. echo -e "$1 * $count = $multi";
  13. count=`expr $count + 1`
  14. done

Código:
leo@lein:~/Escritorio$ cat shell.sh 
#!/usr/bin/bash
if [ $# -ne 1 ];
then
        echo -e "Error de argumentos";
        exit 1;
fi
count=1
multi=1 # Inicializamos a 1.
while [ $count -le 10 ];
do
        multi=`expr $1 \* $count`
        echo -e "$1 * $count = $multi";
        count=`expr $count + 1`
done
leo@lein:~/Escritorio$ bash shell.sh 5
5 * 1 = 5
5 * 2 = 10
5 * 3 = 15
5 * 4 = 20
5 * 5 = 25
5 * 6 = 30
5 * 7 = 35
5 * 8 = 40
5 * 9 = 45
5 * 10 = 50
leo@lein:~/Escritorio$

@kln, puede hacerlo con cualquier sentencia de control, no necesariamente for.

Código
  1. #!/usr/bin/bash
  2. if [ $# -ne 1 ];
  3. then
  4. echo -e "Error con argumentos";
  5. exit 1;
  6. fi
  7. for((i = 1; i <= 10; i++));
  8. do
  9. echo -e "$1 * $i = `expr $1 \* $i`";
  10. done