回答:
使用できます
brew ls --versions myformula
それぞれの数式のインストール済みバージョンを出力します。式がインストールされていない場合、出力は空になります。
で入手できる最新バージョンの自作を使用する場合は、これをbrew update
実行するだけです(Slavenに感謝)。
if brew ls --versions myformula > /dev/null; then
# The package is installed
else
# The package is not installed
fi
とはいえ、それぞれの自作パッケージをチェックするだけではなく、ツールの存在を確認することをお勧めします(たとえば、で実行可能ファイルを検索するなど$PATH
)。人々は実際にはかなり大量の方法でツールをインストールする傾向があり、自作はその1つにすぎません。
if macchanger --help > /dev/null; then
、macchanger
がインストールされているかどうかが確認されますか?
macchanger
、現在のシェルにあり$PATH
ます。失敗した場合は、PATHで使用できないか、インストールされていません。
which -s
。-s
「何も出力を-sない何も見つからない場合は、単に実行ファイルのいずれかが見つかった場合は0を返す、または1、。」としてオプション(サイレント)が文書化されています 適切な使用法は次のようなものですwhich macchanger || echo "macchanger not on PATH"
どうですか?
for pkg in macvim ngrep other needed packages; do
if brew list -1 | grep -q "^${pkg}\$"; then
echo "Package '$pkg' is installed"
else
echo "Package '$pkg' is not installed"
fi
done
python@3
、としてインストール(およびリスト)されているような、いくつかのバージョン化された数式では機能しませんpython3
。
最も簡単な2ライナー:ステップ1、それがインストールされていることを確認します
$ realpath . || brew install coreutils
これにより、現在のディレクトリの実際のパスが出力されます。そうでない場合は、インストールされます。そして、それはrealpathが見つからなくても失敗しません。
ステップ2、実際のコードで呼び出します。
$ realpath ${someDir}
brew --cellar "$formula" >/dev/null 2>&1
--cellar formula: Display the location in the cellar where formula would be installed, without any sort of versioned directory as the last path.
brewのmanページ。答えとしてそれを与えるのが大好きだったでしょう