gpt4 book ai didi

mysql - 从 bash 运行 mysql 查询;其中查询存储在单独的文件中,并在 bash 中设置了变量

转载 作者:行者123 更新时间:2023-11-29 02:30:51 25 4
gpt4 key购买 nike

我有一个 bash 脚本,负责查询数据库并将结果传输到文件:

date=`date +"%Y/%m/%d"`

/usr/bin/mysql -u $db_user -p$db_pass -h $db_name $db_schema << MYSQLEOF > $output_file

select *
from table
where date = $date

MYSQLEOF

现在将这个项目扩展到其他领域,为了可重用性/正交性,我想将查询放在它自己的文件中并用类似的东西调用:

cmd=`echo $sql_file`

/usr/bin/mysql -u $db_user -p$db_pass -h $db_name $db_schema -e "$cmd" > $output_file

sql文件:

  select *
from table
where date = $date

我无法找到如何(在 bash 中)执行此操作,同时仍然能够在 sql 文件中拥有和调整变量($date)。将 .sql 文件回显到 bash 变量中,我无法让“$date”不被视为文字字符串。

在 bash 中是否有解决方案,或者我应该研究 perl 之类的东西来处理这个问题?

最佳答案

使用 mySQL CLI 的 source 命令。

queryfile=my_query.sql
/usr/bin/mysql -u $db_user -p$db_pass -h $db_name $db_schema -e "source $queryfile" > $output_file

关于mysql - 从 bash 运行 mysql 查询;其中查询存储在单独的文件中,并在 bash 中设置了变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13404428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com