Mysql 在Bash中声明变量?

Mysql 在Bash中声明变量?,mysql,bash,shell,variables,Mysql,Bash,Shell,Variables,我已从bash连接到数据库。我对数组进行select计数,并将返回值存储在一个变量中。我该怎么做 我做到了: var=`"select count(*) from shop_tab where catalog <> ''" | mysql -h abcdcef.com --port=3306 --user=root --password=hbbfe shop` 请求返回一个数字,但它不存储在变量中 谢谢 编辑:它与以下命令行一起使用: myvar = $(echo "select

我已从bash连接到数据库。我对数组进行select计数,并将返回值存储在一个变量中。我该怎么做

我做到了:

var=`"select count(*) from shop_tab where catalog <> ''" | mysql -h abcdcef.com --port=3306 --user=root --password=hbbfe shop`
请求返回一个数字,但它不存储在变量中

谢谢

编辑:它与以下命令行一起使用:

myvar = $(echo "select count(*) from shop_tab where catalog <> '';" | mysql -h abcdcef.com --port=3306 --user=root --password=hbbfe shop)

我想你忘了管道里的回声了吧?像这样:

var=`echo "select count(*) from shop_tab where catalog <> ''" | mysql -h abcdcef.com --port=3306 --user=root --password=hbbfe shop`

我想你忘了管道里的回声了吧?像这样:

var=`echo "select count(*) from shop_tab where catalog <> ''" | mysql -h abcdcef.com --port=3306 --user=root --password=hbbfe shop`
更简单的方法是:

var=$(mysql -h abcdcef.com --port=3306 --user=root --password=hbbfe --batch --skip-column-names -Dshop -e "select count(*) from shop_tab where catalog <> ''")
此外,我将预先设置函数的使用,以便轻松地向MySQL命令添加选项,而无需修改所有脚本

function MysqlQuery() {
    mysql -h abcdcef.com --port=3306 --user=root --password=hbbfe --batch --skip-column-names -D "$1" -e "$2";
}

va=$(MysqlQuery Shop "SELECT COUNT(*) FROM shop_tab WHERE catalog <> ''")
vaABC=$(MysqlQuery Shop "SELECT COUNT(*) FROM shop_tab WHERE catalog <> 'abc'")
vadef=$(MysqlQuery Shop "SELECT COUNT(*) FROM shop_tab WHERE catalog <> 'def'")
# ...
我发现这也更具可读性…

一个更简单的方法是:

var=$(mysql -h abcdcef.com --port=3306 --user=root --password=hbbfe --batch --skip-column-names -Dshop -e "select count(*) from shop_tab where catalog <> ''")
此外,我将预先设置函数的使用,以便轻松地向MySQL命令添加选项,而无需修改所有脚本

function MysqlQuery() {
    mysql -h abcdcef.com --port=3306 --user=root --password=hbbfe --batch --skip-column-names -D "$1" -e "$2";
}

va=$(MysqlQuery Shop "SELECT COUNT(*) FROM shop_tab WHERE catalog <> ''")
vaABC=$(MysqlQuery Shop "SELECT COUNT(*) FROM shop_tab WHERE catalog <> 'abc'")
vadef=$(MysqlQuery Shop "SELECT COUNT(*) FROM shop_tab WHERE catalog <> 'def'")
# ...

我发现这也更具可读性…

您如何知道它不在变量中?运行此命令后,var的内容是什么?echo$var是的,我做了echo$var,没有什么,一个空白..这有用吗?[ [1]:您必须在一行上完成所有操作,因为变量没有被导出:var=XmycommandX;echo$var用backtick替换X,我不知道如何在注释框中转义backtick。也可以使用-e而不是管道。您如何知道它不在变量中?运行此操作后,var的内容是什么?echo$varYes我做了echo$var,我在那里It’没什么,一片空白……这有用吗?[[1]:您必须在一行中完成所有操作,因为变量没有被导出:var=XmycommandX;echo$var用反勾号替换X,我不知道如何在注释框中转义反勾号。也可以使用-e而不是管道。很好!还有一个根本不做任何管道操作的原因,而使用mysql-e。很好!还有一个不做任何操作的原因而不是使用mysql-e。