Мне нужно, из скрипта bash, проверить, установлены ли определенные гемы Ruby.
Я думал, что мог сделать что-то вроде
if ! gem list <name>; then do_stuff; fi
но тестирование с использованием командной строки echo $?
показывает, что gem list <name>
возвращает 0 независимо от того, действительно ли найдено имя.
Означает ли это, что я должен использовать grep для фильтрации вывода списка драгоценных камней, или есть лучший способ проверить, установлен ли гем?
--version
, например:gem list -i compass --version 0.12.4
.Выглядит так, как будто
gem spec
команда завершится с ошибкой, если указанный гем не установлен. Так:Я не знаю, является ли это каноническим способом решения этого, но это работает.
источник
Вы также можете использовать
выдержка из использованияquery
подкоманду кgem
команде.Также будет искать конкретные версии, используя
-v
переключатель.источник
gem query
: «Команда запроса является основой для команд списка и поиска. Вам действительно следует вместо этого использовать команды списка и поиска. Эту команду слишком сложно использовать». ... не хочу создавать вредных привычек в SO сообществе! :-)