Mysql

從 bash 中選擇遠端數據庫

  • February 16, 2017

我是 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.

引用自:https://serverfault.com/questions/832848