-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hola
On Monday 09 December 2002 15:19, sitalopez wrote:
> Hola,
> Una duda que quizá para muchos sea una novatada, pero a mi no me sale.
> Tengo una duda con la condición "if" y "endif" "fi" de este script. Leo
> manuales y todos dicen que lo hago bien, pero no me sale.
> ¿alguien me puede hechar una mano?
>
> #fichero1.sh
> echo "introduce número"
> read n;
las referencias a las variables se deben hacer con $variable
si lees n debes comparar $n
Ej:
read n
echo $n


No me suena la encapsulación en paréntesis en sh
pero podría ser...

los operadores de una condición test nunca deben tocar los corchetes
ten en cuenta que [  es un enlace duro a test ( son el mismo archivo ) sería 
como escribir testn en vez de test n ( recuerda que es $n.

Por otro lado para comparar campos numéricos no se debe utilizar el operador 
igual, deberías usar -eq 

> if ([n=1] then) echo "uno"

Con lo que tu condición se transforma en

if [ "$n" -eq 1 ]; then echo "uno" 

si quieres que pueda trabajar con cualquier caracter y no solo con números
si puedes utilizar el operador = ( los tratas como caracteres y no como 
números ) mejora la tolerancia a fallos

lo mismo has de aplicarlo en las siguientes líneas
> elif ([n=2] then) echo "dos"
> else echo "ni uno ni dos"

solo tienes un bucle if ( fi es if al revés ;-) 
> fi
este te sobraría
> fi

Compara con el tuyo éste:

#!/bin/sh
echo "introduce número"
read n
if [ $n = 1 ]
then
echo "uno"
elif [ $n -eq 2 ]
then
echo "dos"
else
echo "ni uno ni dos"
fi

en cualquier caso para esas cosas te recomiendo el sencillo pero siempre 
interesante select

#!/bin/bash
select eleccion in uno dos tres cuatro salir
do
if [ $eleccion = salir ]
then
echo "Saliendo"
exit 0
fi

if [ $eleccion = uno ]
then
echo "eleccion vale 1"
elif [ $eleccion = dos  ]
then
echo "eleccion vale 2"
else
echo "eleccion vale tres o cuatro"
fi
done

En cualquier caso, y para más y mejores detalles:
La guía de scripting avanzado ( ojo es para bash )

http://www.tldp.org/LDP/abs/html/index.html

Saludos
Victor
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE99LSOEzqHF8R72ekRAmLsAKCZ5YbxMJCwWvdXGVxSPvFPCCXCLgCgkBjl
wwOdq8MEh2YlXQqETm8d7Lc=
=4dM1
-----END PGP SIGNATURE-----

Reply via email to