type mysql >/dev/null 2>&1 && echo "MySQL present." || echo "MySQL not present."
Eu preciso verificar se o mysql está instalado a partir de um script bash. Qual seria uma maneira eficiente de fazer isso? Eu pensei que poderia fazer isso:
if [ ! -f 'which mysql' ] ; then
echo "foo"
fi
Mas acho que posso estar confuso sobre alguma coisa. Qual seria uma solução melhor? Deve ser portátil e funcionar em Ubuntu
e OSX
.
Se você usa exclusivamente o gerenciador de pacotes do Ubuntu para a instalação do MySQL, então você pode apenas usar o front end do dpkg para dpkg-query para descobrir se o pacote está instalado.
# Look up package with dpkg-query.
if dpkg --list mysql-client | egrep -q ^ii; then
:
fi
Isso é rápido e confiável, mas obviamente funciona apenas quando você usa os pacotes do sistema Ubuntu.
Eu escrevi um script Rightscale e precisava saber se o mysql-server estava instalado. Eu usei:
if [ -f /etc/init.d/mysql* ]; then
echo "installed"
else
echo "not installed"
fi
Tags bash mysql ubuntu shell-script osx