Se que era f�cil, pero de cambiar de un lenguaje a otro me equivoco mucho
con los " ; ", las ' '; los ' $ ', ' else if ' o ' elif ', etc...
Para quien le interese, aqu� est�:

2 condiciones
-------------------------------
echo "inserteu un n�mero:";
read n;
if [ $n -eq 1 ]; then
banner n�mero1;
else banner n�mero2;
fi

3 condiciones
---------------------------------
echo "inserteu un n�mero:";
read n;
if [ $n -eq 1 ]; then
banner n�mero1;
elif [ $n -eq 2 ]; then
banner n�mero2;
fi

4 condiciones
-------------------------------------
echo "inserteu n�mero:";
read n;
if [ $n -eq 1 ]; then
banner n�mero1;
elif [ $n -eq 2 ]; then
banner n�mero2;
elif [ $n -eq 3 ]; then
banner n�mero3;
elif [ $n -eq 4 ]; then
banner n�mero4;

GRAZZIE por la ayuda.

JuAnArKo...






----- Original Message -----
From: "Victor Calzado Mayo" <[EMAIL PROTECTED]>
To: "Lista de correo Debian en Castellano"
<[email protected]>
Sent: Monday, December 09, 2002 4:19 PM
Subject: Re: Condici�n IF ELSE de un script b�sico


> -----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-----
>
>
> --
> To UNSUBSCRIBE, email to [EMAIL PROTECTED]
> with a subject of "unsubscribe". Trouble? Contact
[EMAIL PROTECTED]
>

Responder a