bash中的功能不起作用

时间:2013-10-08 17:59:10

标签: bash

我的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

问题在于使用函数查询,但不知道如何纠正它。

有什么建议吗?

3 个答案:

答案 0 :(得分:4)

尝试在函数中的$ 1附近加双引号。

答案 1 :(得分:3)

尝试这样,即将$1放入双qoutes:

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

答案 2 :(得分:1)

试试:

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