Estou prestes a escrever um script de shell para detectar se vários pacotes homebrew estão instalados no sistema. Existe uma maneira de usar um comando brew para fazer isso?
Tentei usar o código de saída de brew install <formula> --dry-run
. Mas isso cria o pacote se estiver faltando.
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.
página man do brew ; teria adorado dar isso como uma respostaif [ ! -x "$(command -v PKG_EXEC)" ]; then # package not installed fi
Respostas:
Você pode usar
para produzir as versões instaladas da respectiva fórmula. Se a fórmula não estiver instalada, a saída ficará vazia.
Ao usar uma versão recente do homebrew, que você pode usar
brew update
, você pode simplesmente executar isto (obrigado, Slaven):Dito isso, provavelmente é uma boa ideia verificar a existência da ferramenta e não apenas verificar o respectivo pacote homebrew (por exemplo, pesquisando o executável no
$PATH
). Na prática, as pessoas tendem a instalar ferramentas de várias maneiras, sendo o homebrew apenas uma delas.fonte
if macchanger --help > /dev/null; then
, isso verificará semacchanger
está instalado?macchanger
está no shell atual$PATH
. Se falhar, significa que não está disponível no PATH ou não foi instalado.which -s
. A-s
opção (silencioso) é documentada como "-s Sem saída, apenas retorna 0 se algum dos executáveis for encontrado, ou 1 se nenhum for encontrado." O uso adequado é algo comowhich macchanger || echo "macchanger not on PATH"
A respeito?
fonte
python@3
que está instalada (e listada) comopython3
.fonte
Dois liners mais fáceis: Etapa um, certifique-se de que esteja instalado
Isso imprimirá o caminho real do diretório atual, se não, ele o instalará. E não falhará mesmo o caminho real não encontrado.
Etapa dois, chame-o em seu código real:
fonte