私は毎日いくつかのクエリを動的に実行するスクリプトを書いています。これらのクエリはデータベースのテーブルから来ます。
以下はクエリテーブルの出力例です。
+---------------+-------------------------------+---------+
| query_name | query | userid |
+---------------+-------------------------------+---------+
| All_User | select * from users LIMIT 10; | jmatthe |
+---------------+-------------------------------+---------+
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)
ここで問題が発生します。私の行に*
文字が含まれているので、echo $query
拡張機能は*
その文字を現在のディレクトリのファイルに置き換えます。基本的に私のquery_sql
店はこんな感じです。
select batchemail.sh query_output.txt from tbl_query
変数から同じ内容を取得できる*
ように、行の内容を保存したいと思います。私の変数に生データを保存しquery_sql
たいです。query_sql
select * from tbl_query
誰でも私を案内できますか?
ベストアンサー1
変数の周りに二重引用符を使用します。
query_name=$(echo "$query" | cut -d\| -f1)
query_sql=$(echo "$query" | cut -d\| -f2)
query_user=$(echo "$query" | cut -d\| -f3)