Es posible que esto no tenga nada que ver con SQL en particular, porque estoy seguro de que otros comandos también lo harán.
En este caso, envío una consulta a través del shell, y si la consulta no coincide con ninguna tabla, literalmente no se devolverá nada, ni siquiera un retorno de carro.
¿Cómo puedo programar mi shell para que, en tal caso, se devuelva 0
o false
en su lugar?
Aquí está mi comando de muestra que está generando mi 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;"
Respuesta1
-v
La opción para el modo detallado debería brindarle más resultados. No puedo intentar esto ahora porque no tengo un servidor SQL en ejecución.
Respuesta2
Mi prima me ofreció esta solución. Lo probé y funciona.
Linea sola:
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`
Desglosado:
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