Einfache Frage - wie kann man in bash auf canonische Weise testen, ob yum oder apt-get vorhanden sind? Ich schreibe ein Skript, das auf Client-Maschinen ausgeführt wird und Unison installiert, dann einen Cron-Job dafür erstellt ...
Antworten
Zu viele Anzeigen?Mit einem Bash-Skript (oder sh, zsh, ksh) könnten Sie den integrierten Befehl -v yum
und Befehl -v apt-get
verwenden.
(ja, der Befehl heißt Befehl)
Nullausgabe bedeutet, dass es nicht vorhanden ist, sonst erhalten Sie den Befehlspfad.
Sie könnten dann eine Testanweisung verwenden, um zu testen, ob das Ergebnis null ist oder nicht.
[ -n "$(Befehl -v yum)" ]
[ -n "$(Befehl -v apt-get)" ]
Hinweis: Ein Nachteil von @ansgar-wiechers vorgeschlagenem which
besteht darin, dass stderr unterdrückt wird, wenn 'yum' nicht vorhanden ist:
[ -n "$(which yum 2>/dev/null)" ]
Ein Vorteil von which ist, dass es kein integriertes Shell-Kommando ist.