Я как бы новичок в сценариях bash / shell, и я пытаюсь удаленно выбрать из базы данных mysql и проверить, существует ли запись или нет. На основании ответа сделаю кое-что.
Это то, что у меня есть как команда
mysql -u mysql -pMysql123 -h xxx.xxx.xxx.xxx MYDBNAME -e "select count(column) from TABLE where column=1234;"
Когда я запускаю эту команду прямо в терминале, я получаю правильный ответ. Я пытаюсь вставить это в сценарий вот так
#!/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
Когда я выполняю сценарий выше, вывод
$ ./check.sh
./check.sh: строка 3: -u: команда не найдена
./check.sh: строка 5: [: -gt: ожидается унарный оператор
ниже 0
Ценю любую помощь в этом. Спасибо.
вам нужна подоболочка. попробуй это:
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
также обратите внимание на -s
вариант:
--silent, -s
Silent mode. Produce less output. This option can be given multiple times to produce less and less output.