7 Stimmen

Bash test für yum- oder apt-basiertes Linux

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 ...

14voto

demure Punkte 7337

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.

2voto

Ansgar Wiechers Punkte 187721

Ich würde wahrscheinlich which verwenden:

[ -n "$(which apt-get)" ]
[ -n "$(which yum)" ]

1voto

Ian Kelling Punkte 9144
Befehl -v apt-get &>/dev/null

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X