MYSQL: Como obter resultado de query em bash

De Wiki Hackstore

Eu gostaria de obter apenas o valor do resultado de uma consulta MySQL em um script. Por exemplo, a execução do seguinte comando:

mysql -uroot -ppwd -e "SELECT id FROM nagios.host WHERE name='$host'"

Retorna:

+----+
| id |
+----+
| 0  |
+----+

A dica é utilizar os parâmetros -s e -N com o mysql. Segundo o manual:

--silent, -s

   Silent mode. Produce less output. This option can be given multiple
   times to produce less and less output.

   This option results in nontabular output format and escaping of
   special characters. Escaping may be disabled by using raw mode; see
   the description for the --raw option.
--skip-column-names, -N

   Do not write column names in results.

Na prática:

id=`mysql -uroot -ppwd -s -N -e "SELECT id FROM nagios.host WHERE name='$host'"`
echo $id
0


Utilize também a opção -ss. É bem mais fácil de lembrar e tem o mesmo resultado.