Je suis sur le point d'écrire un script shell pour détecter si plusieurs packages homebrew sont installés dans le système. Existe-t-il un moyen d'utiliser une commande d'infusion pour y parvenir?
J'ai essayé d'utiliser le code de sortie de brew install <formula> --dry-run
. Mais cela construit le package s'il manque.
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.
page de manuel brew ; aurait aimé y répondreif [ ! -x "$(command -v PKG_EXEC)" ]; then # package not installed fi
Réponses:
Vous pouvez utiliser
pour afficher les versions installées de la formule respective. Si la formule n'est pas installée, la sortie sera vide.
Lorsque vous utilisez une version récente de homebrew, que vous pouvez utiliser
brew update
, vous pouvez simplement l'exécuter (merci Slaven):Cela dit, c'est probablement une bonne idée de vérifier l'existence de l'outil et pas seulement de vérifier le paquet homebrew respectif (par exemple en recherchant l'exécutable dans le
$PATH
). Les gens ont tendance à installer des outils de nombreuses manières dans la pratique, l'homebrew n'étant que l'une d'entre elles.la source
if macchanger --help > /dev/null; then
, est-ce que cela vérifiera simacchanger
est installé?macchanger
est dans le shell actuel$PATH
. En cas d'échec, il n'est pas disponible dans le PATH ou n'est pas installé.which -s
. L'-s
option (silent) est documentée comme "-s Pas de sortie, retourne simplement 0 si l'un des exécutables est trouvé, ou 1 si aucun n'est trouvé." L' utilisation correcte est quelque chose commewhich macchanger || echo "macchanger not on PATH"
Qu'en est-il de?
la source
python@3
qui est installée (et répertoriée) souspython3
.la source
Les deux doublures les plus faciles: Première étape, assurez-vous qu'il est installé
Cela affichera le chemin réel du répertoire actuel, sinon, il l'installera. Et il n'échouera pas même realpath introuvable.
Deuxième étape, appelez-le dans votre code réel:
la source