Selecione banco de dados remoto do bash

1

Sou meio que novo no bash / shell scripting e estou tentando selecionar remotamente do banco de dados mysql e verificar se o registro existe ou não. Com base no responder vai fazer algumas coisas.

Isto é o que eu tenho como um comando

mysql -u mysql -pMysql123 -h xxx.xxx.xxx.xxx MYDBNAME -e "select count(column) from TABLE where column=1234;"

Quando eu executo este comando diretamente no terminal, recebo uma resposta correta. Então, eu estou tentando colocar isso no script assim

#!/bin/bash

count=mysql -u mysql -pMysql123 -h xxx.xxx.xxx.xxx MYDBNAME -e "select count(column) from TABLE where column=1234;"

if [ $count -gt 0 ]
then
     echo " greater that 0 "
else
     echo " lower than 0 "
fi

Quando executo o script acima, a saída é

$ ./check.sh

./check.sh: line 3: -u: command not found

./check.sh: line 5: [: -gt: unary operator expected

lower than 0

Aprecie qualquer ajuda sobre isso. Obrigado.

    
por VLS 16.02.2017 / 06:52

1 resposta

5

você precisa de um subshell. tente isso:

count=$(mysql -u mysql -pMysql123 -h xxx.xxx.xxx.xxx MYDBNAME -sse "select count(column) from TABLE where column=1234;")

if [ $count -gt 0 ]
then
     echo " greater that 0 "
else
     echo " lower than 0 "
fi

também tome nota da opção -s :

--silent, -s
Silent mode. Produce less output. This option can be given multiple times to produce less and less output.
    
por 16.02.2017 / 07:06