Hola, tengo que mostrar la tabla de multiplicar de un número pasado como argumento, pero no me funciona:
#!/bin/bash
n=1
while [ $n -le 10 ]
do
multi= `expr $1 \* $n`
echo $1 * $n = $multi
n = `expr $n + 1`
done
Usa for.
Prueba esto:
#!/usr/bin/bash
let count=1
let multiplicacion=1
while [ $count -le 10 ]
do
let multiplicacion="$count * $1";
echo -e "$1 * $count = $multiplicacion";
let count+=1
done
#!/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$ 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.
#!/usr/bin/bash
if [ $# -ne 1 ];
then
echo -e "Error con argumentos";
exit 1;
fi
for((i = 1; i <= 10; i++));
do
echo -e "$1 * $i = `expr $1 \* $i`";
done