I am working on a script which dynamically executes some queries on daily basis. These queries are coming from a table in the database.
Here is the sample output of the query table:
+---------------+-------------------------------+---------+
| query_name | query | userid |
+---------------+-------------------------------+---------+
| All_User | select * from users LIMIT 10; | jmatthe |
+---------------+-------------------------------+---------+
Now, I have to execute the query select * from users LIMIT 10;
dynamically. I am reading each line of the output and storing the query from the output.
query_name=$(echo $query | cut -d\| -f1)
query_sql=$(echo $query | cut -d\| -f2)
query_user=$(echo $query | cut -d\| -f3)
Now here is where the problem arises. Because my line contains a *
character in it, echo $query
expands the *
to replace it with the files in the current directory. So basically, my query_sql
stores something like this.
select batchemail.sh query_output.txt from tbl_query
I want to preserve the *
in the line so that I get the same in my query_sql
variable. I want my query_sql
variable to store the original data.
select * from tbl_query
Can anybody guide me on this?