-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Ismael Valladolid Torres wrote: > Guimi escribe: >> Iñaki escribió: >>> Hola, sé que debe ser una tontería pero no logro dar con la solución: >>> >>> if [ $(which top) ] ; then >>> echo "Paquete top instalado" >>> else >>> echo "Paquete top no instalado" >>> fi >>> >>> >>> Perfecto, pero yo quiero que de una manera sencilla hacer algo como: >>> >>> >>> if [ !$(which top) ] ; then >>> echo "top no instalado" ; >>> fi >>> >>> Pero obviamente no sirve (no existe) eso de poner un ! delante de la >>> condición. >> Si sirve, pero te falta un espacio: >> if [ ! $(which top) ] >> then >> echo "No" >> fi >> >>> La verdad es que los condicionales en Bash siempre han sido un infierno >>> para mí. ¿Alguien me ayuda a poner esa última opción correctamente pero >>> sin aumentar el número de líneas? >> man test ;-) > > Yo, después de algunos años de bashes y whiches, he acabado > descubriendo que la forma más portable sería ésta: > > if [ -x "`which top`" ]; then > echo "puedes ejecutar top" > fi > > Esto te sirve tanto en otros sistemas UNIX (como HP-UX) donde which > tiene la gracia de devolver el estado "al revés" (0 si existe, 1 si no > existe). También te sirve en sistemas donde el comando estaría en el > path pero tu usuario no tendría permisos para ejecutarlo. > > Si te preocupa el número de líneas: > > [ -x "`which top`" ]; && echo "puedes ejecutar top" ^^ Solo una pequeña aclaracion a tan magistrales correos:
[EMAIL PROTECTED]:~ $ [ `which top` ]; && echo "top ta" bash: syntax error near unexpected token `&&' [EMAIL PROTECTED]:~ $ [ `which top` ] && echo "top ta" top ta [EMAIL PROTECTED]:~ $ uname -a Linux kebek 2.6.12-10-686 #1 Fri Sep 15 16:37:09 UTC 2006 i686 GNU/Linux [EMAIL PROTECTED]:~ $ Esta noche lo pruebo en AIX, Solaris y HP-UX y les cuento ;) > > Y no existen las preguntas tontas, existen las respuestas que se pasan > de listas. Si que existen! Ahi va una: Adan .... tenía ombligo? :P > > Un saludo, Ismael - -- Ricardo A.Frydman Administrador de Sistemas Unix http://eureka-linux.com.ar -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (GNU/Linux) iD8DBQFFVIVCkw12RhFuGy4RAuIWAJ931vfPBMj7ta1TlqWnAuzhlE+Z8ACfTWDB RK1VID6GbaMRZwwY0dJL5rA= =CmSE -----END PGP SIGNATURE-----