Ich muss anhand eines Bash-Skripts überprüfen, ob bestimmte Ruby-Edelsteine installiert sind.
Ich dachte, ich könnte so etwas tun
if ! gem list <name>; then do_stuff; fi
Das Testen in der Befehlszeile mit echo $?
zeigt jedoch, dass gem list <name>
0 zurückgegeben wird, unabhängig davon, ob der Name tatsächlich gefunden wurde.
Bedeutet dies, dass ich grep verwenden muss, um die Ausgabe der Gem-Liste zu filtern, oder gibt es eine bessere Möglichkeit, um zu überprüfen, ob ein Gem installiert ist?
--version
, zum Beispiel:gem list -i compass --version 0.12.4
.Es sieht so aus, als würde der
gem spec
Befehl mit einem Fehler fehlschlagen, wenn der genannte Edelstein nicht installiert ist. So:Ich weiß nicht, ob dies der kanonische Weg ist, dies zu lösen, aber es funktioniert.
quelle
Sie können auch den
Anwendungsauszugquery
Unterbefehl zumgem
Befehl verwenden.Sucht mithilfe des
-v
Schalters auch nach bestimmten Versionen .quelle
gem query
"Der Abfragebefehl ist die Basis für die Listen- und Suchbefehle. Sie sollten stattdessen die Listen- und Suchbefehle verwenden. Dieser Befehl ist zu schwer zu verwenden." ... will keine schlechten Angewohnheiten in der SO-Community schaffen! :-)