Mam zamiar napisać skrypt powłoki, który wykryje, czy w systemie jest zainstalowanych kilka pakietów homebrew. Czy jest sposób na użycie polecenia parzenia, aby to osiągnąć?
Próbowałem użyć kodu zakończenia brew install <formula> --dry-run
. Ale to buduje pakiet, jeśli go brakuje.
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 page ; chciałbym dać to jako odpowiedźif [ ! -x "$(command -v PKG_EXEC)" ]; then # package not installed fi
Odpowiedzi:
Możesz użyć
aby wyświetlić zainstalowane wersje odpowiedniej formuły. Jeśli formuła nie jest zainstalowana, dane wyjściowe będą puste.
Korzystając z najnowszych wersji homebrew, z których możesz skorzystać
brew update
, możesz po prostu uruchomić to (dzięki Slaven):To powiedziawszy, prawdopodobnie dobrym pomysłem jest sprawdzenie w ogóle istnienia narzędzia, a nie tylko sprawdzenie odpowiedniego pakietu homebrew (np. Wyszukując plik wykonywalny w
$PATH
). W praktyce ludzie zazwyczaj instalują narzędzia na dość dużą liczbę sposobów, a homebrew jest tylko jednym z nich.źródło
if macchanger --help > /dev/null; then
, czy to sprawdzi, czymacchanger
jest zainstalowany?macchanger
jest w bieżącej powłoce$PATH
. Jeśli się nie powiedzie, oznacza to, że nie jest dostępny w PATH lub nie jest zainstalowany.which -s
.-s
Opcja (cichy) jest udokumentowane jako „-s Bez wyjścia, po prostu zwraca 0 jeśli występują którekolwiek z plików wykonywalnych lub 1 jeśli nie odnajdzie.” Właściwe użycie to coś w rodzajuwhich macchanger || echo "macchanger not on PATH"
Co powiesz na?
źródło
python@3
która jest zainstalowana (i wymieniona) jakopython3
.źródło
Najłatwiejsze dwuwarstwowe: Krok pierwszy, upewnij się, że jest zainstalowany
Spowoduje to wydrukowanie rzeczywistej ścieżki bieżącego katalogu, jeśli nie, zainstaluje go. I nie zawiedzie nawet nie znalezionej ścieżki.
Krok drugi, nazwij to w swoim rzeczywistym kodzie:
źródło