2

我的 bash:使用“查询”功能进行“测试”

#!/bin/bash
MY_USER="root"
MY_PASSWORD="my_password"
MY_BD="my_db"
MY_HOME="/home/express"

function query {
    mysql -e $1 -u $MY_USER --password=$MY_PASSWORD $MY_BD
}

case $1 in
"period")
    mysql -e "SELECT cron_period()" -u $MY_USER --password=$MY_PASSWORD $MY_BD;;
"hold")
    query "SELECT cron_hold()";;
*)
    echo "Others";;
esac

测试:

testing period // Working with complete command
testing hold   // Not working with function query, show commands info of MySQL

问题是使用函数查询时,但不知道如何更正。

请问有什么建议吗?

4

3 回答 3

4

尝试在函数中的 $1 周围加上双引号。

于 2013-10-08T18:01:01.697 回答
3

像这样尝试,即$1输入双引号:

function query {
    mysql -e "$1" -u $MY_USER --password=$MY_PASSWORD $MY_BD
}
于 2013-10-08T18:01:49.763 回答
1

试试看:

function query {
    mysql -e ${1} -u $MY_USER --password=$MY_PASSWORD $MY_BD
}
于 2013-10-08T19:02:37.837 回答