我正在编写一个脚本,该脚本每天动态执行一些查询。这些查询来自数据库中的一个表。
以下是查询表的示例输出:
+---------------+-------------------------------+---------+
| query_name | query | userid |
+---------------+-------------------------------+---------+
| All_User | select * from users LIMIT 10; | jmatthe |
+---------------+-------------------------------+---------+
Run Code Online (Sandbox Code Playgroud)
现在,我必须select * from users LIMIT 10;动态执行查询。我正在读取输出的每一行并存储来自输出的查询。
query_name=$(echo $query | cut -d\| -f1)
query_sql=$(echo $query | cut -d\| -f2)
query_user=$(echo $query | cut -d\| -f3)
Run Code Online (Sandbox Code Playgroud)
现在这里是问题出现的地方。因为我的行中包含一个*字符,所以echo $query扩展*以将其替换为当前目录中的文件。所以基本上,我的query_sql商店是这样的。
select batchemail.sh query_output.txt from tbl_query
Run Code Online (Sandbox Code Playgroud)
我想保留*行中的 ,以便在我的query_sql变量中得到相同的结果。我希望我的query_sql变量存储原始数据。
select * from tbl_query
Run Code Online (Sandbox Code Playgroud)
有人可以指导我吗?
mysql command-line-interface unix-shell echo shell-scripting