[英]How to execute MySQL query and bash command together in one script?
我想在 bash 腳本中執行多個 SQL 查詢。 查詢正在加載具有相似名稱的文件。 例如:File1.csv,File2.csv...我知道我可以用
mysql -u root -p <<EOF MYSQL QUERY 1 MYSQL QUERY 2...
我可以在這些查詢中使用 bash 變量嗎? 我也嘗試過類似的代碼
for f in $dir; do
echo "SET foreign_key_checks = 0; LOAD DATA LOCAL INFILE '$f' INTO TABLE $table CHARACTER SET UTF8 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\n';"
done`
然而,上次我執行這樣的腳本時,我的表崩潰了。 我用來編寫上述腳本的示例腳本是
for f in $dumpDir/*.csv ; do
table=`basename $f|cut -f1 -d'.'`
echo "`date` Restoring table $table"
echo "SET foreign_key_checks = 0; LOAD DATA LOCAL INFILE '$f' INTO TABLE $table CHARACTER SET UTF8 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\n';" |$mysql || exit 1
done
我的表是否因為缺少部分|$mysql || exit 1
而崩潰? |$mysql || exit 1
?
我通過在 MYSQL 查詢之后附加|$mysql ||exit 1
來解決這個問題。 我還使用了 ghtorrent 項目的配置。 原始代碼
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.