Mysql
從 bash 中選擇遠端數據庫
我是 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
感謝您對此的任何幫助。謝謝。
你需要一個子shell。試試這個:
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.