Shell-Script
如何在 shell 腳本的查詢中獲取動態變數
我的腳本的最後一部分只是待處理。
請參考下面的程式碼。
master_db_user='root' master_db_passwd='123' master_db_port='3306' master_db_host='localhost' master_db_name='uppcldashboard' Now=$(date +"%d-%m-20%Y") #Preparing script #SQL_Query='select * from test_table;' #MySql Command to connect to a database mysql -u$master_db_user -p$master_db_passwd -D$master_db_name -e 'select * from uppcl_amount_details into outfile "/created_files/uppcl.csv" fields terminated by "," lines terminated by "\n"'; mv /created_files/uppcl.csv /created_files/offline_collection$Now.csv sed -i "1i ID","Cashier_id","Discom","Division_Code","division_Name" /created_files/offline_collection$Now.csv echo "End of the Script"
好的,主要問題是這個..所以我的表中有一個名為posting_dates的列。由於發布日期,我們能夠知道目前的數據是該特定日期的表格。
現在我的腳本中的問題是我不能使用查詢中的任何變數。它根本不起作用,因為它將查詢作為語句。
所以基本上我想要的是這個
我進行這樣的查詢,我不需要提及任何日期。我希望它能夠獲取那一天的數據。因為我不能每次都更改查詢。
我不能像張貼日期 =“2020-03-30”那樣,我需要每天自動更改查詢的東西。因為它將用於製作特定日期的文件。
真的需要幫助這個人。
謝謝和問候, 薩加爾曼達爾
只是不要使用單引號:
mysql -u$master_db_user -p$master_db_passwd -D$master_db_name \ -e "select * from uppcl_amount_details where date='$Now' into \ outfile '/created_files/uppcl.csv' fields terminated by ',' \ lines terminated by '\n'";
這樣,您還可以從頭開始獲取文件名:
into outfile '/created_files/offline_collection$Now.csv'
另請注意,您的
date
格式可能不是您想要的。你有這個:$ date +"%d-%m-20%Y" 14-04-202020
但你可能想要這個:
$ date +%F 2020-04-14
所以:
Now=$(date +%F)
。