[英]How to check if a gem installed on a machine in bash script?
我希望能夠從腳本運行系統命令
bundle exec rubocop
但前提是bundle
和rubocop
gem 安裝並存在於機器上。 如果檢查這些 gem 的存在失敗,忽略該命令並退出。
如何在運行命令之前設置這些檢查? 也許我應該使用bundle --version
看看命令是否崩潰? 先感謝您。
您可以像這樣 grep 已安裝的 gem
#!/bin/bash
if ! gem list --local | grep -q 'bundler'; then
echo 'Please install bundler first'
exit 1
fi
if ! gem list --local | grep -q 'rubocop'; then
echo 'Please install rubocop first'
exit 1
fi
bundle exec rubocop
之前建議的替代方法:不是測試是否安裝了 gem,而是測試是否有適當的命令可用(不一定相同):
#!/bin/bash
if type bundle >/dev/null 2>&1; then
if type rubocop >/dev/null 2>&1; then
bundle exec rubocop
else
echo "Rubocop seems to be not available"
exit 1
fi
else
echo "Bundler seems to be not available"
exit 1
fi
(這個腳本可能會更好,例如,報告所有丟失的命令,而不是只遇到第一個,但這只是一個簡單的草圖來說明這個想法)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.