【发布时间】:2019-08-11 14:56:50
【问题描述】:
我正在尝试创建一个运行 sql 查询的 bash shell 脚本,然后创建一个在特定时间运行它的 cronjob。
我创建了我的 bash 脚本,见下文
mysql -u $host -D $dbname -u $user -p$password -e $mySqlQuery
我将 -u -D -p -e 全部包含在变量中。我也将其更改为可执行文件。当我运行它时。它给出了一个输出说明。找不到命令。谁能说出我犯的错误?
下面是 bash 脚本
host="host"
user="user"
dbname="database"
password="password"
mySqlQuery = "SELECT *
FROM invoice i
JOIN item it
ON it.invoice_id = i.id
JOIN user u
ON i.user_id = u.id
JOIN gateway_response gr
ON gr.invoice_id = i.id
WHERE i.created_at >= '2019-03-01 00:00:00' and
i.created_at <= '2019-03-17 23:59:59' and i.status=9"
mysql -u $host -D $dbname -u $user -p$password -e $mySqlQuery
以下是我运行它时收到的错误。
/home/chris2kus/givingDetectRun.sh: line 8: mySqlQuery: command not found /home/chris2kus/givingDetectRun.sh: line 20: mysql: command not found –
【问题讨论】:
-
您是否尝试过使用 mysql 命令的完整路径来运行它?例如:/usr/local/bin/mysql -u $host -D $dbname -u $user -p$password -e $mySqlQuery
-
另外,我建议您在变量名周围使用双引号,即使用 "$host" 而不仅仅是 $host
-
@RodElias 将变量用双引号括起来有什么区别?
标签: mysql linux bash shell cron