Saya akan menulis skrip shell untuk mendeteksi jika beberapa paket homebrew diinstal di sistem. Apakah ada cara untuk menggunakan perintah brew untuk mencapai itu?
Saya mencoba menggunakan kode keluar dari brew install <formula> --dry-run
. Tapi ini membangun paket jika hilang.
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.
halaman manual pembuatan ; akan sangat senang memberikannya sebagai jawabanif [ ! -x "$(command -v PKG_EXEC)" ]; then # package not installed fi
Jawaban:
Kamu bisa memakai
untuk menampilkan versi yang diinstal dari rumus masing-masing. Jika rumus tidak dipasang, keluaran akan kosong.
Saat menggunakan versi homebrew terbaru, yang bisa Anda dapatkan
brew update
, Anda bisa menjalankan ini (terima kasih Slaven):Karena itu, mungkin ide yang baik untuk memeriksa keberadaan alat sama sekali dan tidak hanya memeriksa paket homebrew masing-masing (misalnya dengan mencari file yang dapat dieksekusi di
$PATH
). Dalam praktiknya, orang cenderung menginstal alat dengan cara yang cukup besar, dengan homebrew hanya salah satunya.sumber
if macchanger --help > /dev/null; then
, apakah itu akan memeriksa apakahmacchanger
sudah diinstal?macchanger
ada di shell saat ini$PATH
. Jika gagal, itu tidak tersedia di PATH atau tidak diinstal.which -s
. The-s
pilihan (diam) didokumentasikan sebagai "-s ada output, hanya kembali 0 jika salah satu executable ditemukan, atau 1 jika tidak ditemukan." Penggunaan yang tepat kira-kira sepertiwhich macchanger || echo "macchanger not on PATH"
Bagaimana dengan?
sumber
python@3
yang diinstal (dan dicantumkan) sebagaipython3
.sumber
Dua baris termudah: Langkah pertama, pastikan sudah terpasang
Ini akan mencetak realpath dari dir saat ini, jika tidak, maka itu akan menginstalnya. Dan itu tidak akan gagal bahkan realpath tidak ditemukan.
Langkah kedua, sebut dalam kode Anda yang sebenarnya:
sumber