Ich bin dabei, ein Shell-Skript zu schreiben, um festzustellen, ob mehrere Homebrew-Pakete im System installiert sind. Gibt es eine Möglichkeit, einen Braubefehl zu verwenden, um dies zu erreichen?
Ich habe versucht, den Exit-Code von zu verwenden brew install <formula> --dry-run
. Dies erstellt jedoch das Paket, wenn es fehlt.
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.
Manpage brauen ; hätte es gerne als Antwort gegebenif [ ! -x "$(command -v PKG_EXEC)" ]; then # package not installed fi
Antworten:
Sie können verwenden
um die installierten Versionen der jeweiligen Formel auszugeben. Wenn die Formel nicht installiert ist, ist die Ausgabe leer.
Wenn Sie eine neuere Version von Homebrew verwenden, mit der Sie arbeiten können
brew update
, können Sie dies einfach ausführen (danke Slaven):Trotzdem ist es wahrscheinlich eine gute Idee, die Existenz des Tools überhaupt zu überprüfen und nicht nur nach dem jeweiligen Homebrew-Paket zu suchen (z. B. durch Suchen nach der ausführbaren Datei in der
$PATH
). Menschen neigen dazu, Werkzeuge in der Praxis auf ziemlich viele Arten zu installieren, wobei Homebrew nur eine davon ist.quelle
if macchanger --help > /dev/null; then
, prüft das dann, obmacchanger
es installiert ist?macchanger
ist in der aktuellen Shell$PATH
. Wenn dies fehlschlägt, ist es entweder nicht im PATH verfügbar oder nicht installiert.which -s
. Die-s
Option (stumm) ist dokumentiert als "-s Keine Ausgabe, geben Sie einfach 0 zurück, wenn eine der ausführbaren Dateien gefunden wird, oder 1, wenn keine gefunden wird." Die richtige Verwendung ist so etwas wiewhich macchanger || echo "macchanger not on PATH"
Wie wäre es mit?
quelle
python@3
installiert (und aufgelistet) istpython3
.quelle
Einfachste Zwei-Liner: Schritt eins: Stellen Sie sicher, dass sie installiert sind
Dadurch wird der Realpfad des aktuellen Verzeichnisses ausgedruckt. Wenn nicht, wird er installiert. Und es wird nicht scheitern, auch wenn der echte Pfad nicht gefunden wurde.
Schritt zwei, nennen Sie es in Ihrem aktuellen Code:
quelle