Mysql
抑制 * 在 echo 中的擴展
我正在編寫一個每天動態執行一些查詢的腳本。這些查詢來自數據庫中的一個表。
這是查詢表的範例輸出:
+---------------+-------------------------------+---------+ | 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
有人可以指導我嗎?
您可以通過在腳本中添加以下行來禁用它:
set -o noglob
舉個例子,
echo * your files and folders are shown here.. set -o noglob echo * *
你可以把它放到“”中:
$ ls file1 file2 file3 file4 file5 file6 file7 file8 file9 $ Q='select * from table;' $ echo $Q select file1 file2 file3 file4 file5 file6 file7 file8 file9 from table; $ echo "$Q" select * from table;