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] >

