Isso pode não ter nada a ver com SQL em particular, porque tenho certeza de que outros comandos farão isso também.
Nesse caso, envio uma consulta pelo shell, e se a consulta não corresponder a nenhuma tabela, literalmente nada será retornado, nem mesmo um Retorno de Carro.
Como posso criar um script para meu shell que, nesse caso, um 0
ou false
seja retornado?
Aqui está meu comando de exemplo que está produzindo meu problema:
mysql -u Popey --password='Misses Jono' -s -N --disable-column-names -e
"select term_id from shuttleworth.wp_terms where name = 'nonExistentName' LIMIT 1;"
Responder1
-v
a opção para o modo detalhado deve fornecer mais resultados. Não posso tentar isso agora, pois não tenho um servidor SQL em execução.
Responder2
Meu primo me ofereceu essa solução. Testei e funciona.
Única linha:
response=$(mysql -u popey --password='Misses Jono' -s -N --disable-column-names -e "select term_id from shuttleworth.wp_terms where name = 'non-existent-name' LIMIT 1;") && if [ -z "$response" ]; then echo false; else echo $response; fi`
Quebrado:
response=
$(mysql
-u popey
--password='Misses Jono'
-s -N --disable-column-names
-e
"SELECT term_id
FROM shuttleworth.wp_terms
WHERE name = 'non-existent-name'
LIMIT 1;"
)
&& if [ -z "$response" ];
then echo false;
else echo $response;
fi