エコーで*拡張抑制

エコーで*拡張抑制

私は毎日いくつかのクエリを動的に実行するスクリプトを書いています。これらのクエリはデータベースのテーブルから来ます。

以下はクエリテーブルの出力例です。

+---------------+-------------------------------+---------+
| 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)

おすすめ記事