Estoy a punto de escribir un script de shell para detectar si hay varios paquetes homebrew instalados en el sistema. ¿Hay alguna forma de usar un comando de preparación para lograr eso?
Intenté usar el código de salida de brew install <formula> --dry-run
. Pero esto crea el paquete si falta.
brew --cellar "$formula" >/dev/null 2>&1
--cellar formula: Display the location in the cellar where formula would be installed, without any sort of versioned directory as the last path.
brew man page ; Me hubiera encantado darlo como respuestaif [ ! -x "$(command -v PKG_EXEC)" ]; then # package not installed fi
Respuestas:
Puedes usar
para generar las versiones instaladas de la fórmula respectiva. Si la fórmula no está instalada, la salida estará vacía.
Cuando use una versión reciente de homebrew, con la que puede obtener
brew update
, puede ejecutar esto (gracias Slaven):Dicho esto, probablemente sea una buena idea verificar la existencia de la herramienta y no solo verificar el paquete homebrew respectivo (por ejemplo, buscando el ejecutable en
$PATH
). La gente tiende a instalar herramientas en una gran cantidad de formas en la práctica, y el homebrew es solo una de ellas.fuente
if macchanger --help > /dev/null; then
, ¿comprobará simacchanger
está instalado?macchanger
está en el shell actual$PATH
. Si falla, no está disponible en la RUTA o no está instalado.which -s
. La-s
opción (silenciosa) se documenta como "-s Sin salida, solo devuelve 0 si se encuentra alguno de los ejecutables, o 1 si no se encuentra ninguno". El uso adecuado es algo así comowhich macchanger || echo "macchanger not on PATH"
¿Qué pasa?
fuente
python@3
que está instalada (y listada) comopython3
.fuente
Dos líneas más fáciles: paso uno, asegúrese de que esté instalado
Esto imprimirá la ruta real del directorio actual, si no, lo instalará. Y no fallará ni siquiera el camino real no encontrado.
Paso dos, llámelo en su código real:
fuente