[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Pregunta tonta de Bash



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

ricardo@kebek:~ $ [ `which top` ]; &&  echo "top ta"
bash: syntax error near unexpected token `&&'
ricardo@kebek:~ $ [ `which top` ] &&  echo "top ta"
top ta
ricardo@kebek:~ $ uname -a
Linux kebek 2.6.12-10-686 #1 Fri Sep 15 16:37:09 UTC 2006 i686 GNU/Linux
ricardo@kebek:~ $

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



Reply to: