1 votos

Ayuda con un bash script para proceder si se encuentra bundle id.

Buscando ayuda para escribir un bash script que compruebe si un id de paquete en particular está instalado y proceda a instalar el paquete si no lo encuentra.

Encontrado que podemos utilizar "mdfind kMDItemCFBundleIdentifier = "com.hnc.Discord" (por ejemplo) devuelve la ubicación para el bundleid particular si la aplicación no se encuentra nada vuelve. ¿Tal vez pueda usar esto con una sentencia if de alguna manera?

Cualquier ayuda será muy apreciada.

1voto

Michael Zhou Puntos 167

mdfind no produce un código de salida incorrecto, pero puede enviar los resultados a grep que lo hace. El código sería algo así

mdfind "kMDItemCFBundleIdentifier = com.apple.Terminal" | grep -q Terminal || installer ....

|| es lógico o.

También podría escribirse

if mdfind "kMDItemCFBundleIdentifier = com.apple.Terminal" | grep -q Terminal
then
  :
else
  installer ...
fi

0 votos

¡Eso funcionaría! ¿Hay alguna forma de hacer que el grep sea universal en lugar de un término específico? El ID del paquete acabará siendo una variable.

1 votos

@WebsterMaster ¿Qué quieres decir con universal? Puedes usar una variable shell en lugar de com.apple.Terminal Además [[ $(mdfind "kMDItemCFBundleIdentifier = $BUNDLEID" | wc -l) -eq 0 ]] evitará el grep parte. O utilice ... -gt 0 y ejecute el instalador en la carpeta then parte.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X