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