Se você quer um método que não envolve a execução de um cliente mysql e o login no servidor mysql, você pode fazer isso:
if ls -l /var/lib/mysql/database/table.frm 2> /dev/null > /dev/null
then
echo Table exists
else
echo Table does not exist
fi
Você terá que substituir o caminho para o diretório de dados, o nome do banco de dados e o nome da sua tabela na primeira linha.
Advertências:
- Isso não funcionará se você estiver usando o InnoDB e não estiver usando o innodb-file-per-table. Ou seja, o script pode dizer que a tabela não existe, embora exista.
- É possível que esse arquivo exista por vários motivos, incluindo a cópia de tabelas usando o sistema de arquivos ou a mudança do MyISAM para o InnoDB. Ou seja, o script pode dizer que a tabela existe mesmo que não exista.
Não é tão confiável quanto os outros métodos já apresentados por causa das razões acima, mas evita o cliente mysql, então ainda pode valer a pena.
Note que todos os métodos apresentados aqui dependem de você ter suas próprias permissões (sistema de arquivos ou MySQL) corretas. Se você errar, provavelmente terá um falso negativo.