[英]Bash script MySQL connection and query via variable
我有一個bash腳本,其中包含一個用於mysql連接詳細信息的變量和一個用於我要運行的查詢的變量...
#!/bin/bash
#listed in the for loop are query numbers = names
declare -a array=(
"1=Unprocessed===\"select count(*) from db where test='unknown'\""
"2=Total===\"SELECT count(*) FROM db\""
)
sqlconnection=$"/usr/local/bin/mysql -u user -passwd -h xx.xx.xx.xx -se"
for i in "${array[@]}";
do
#map s=selection n= name q=== sql query
s=$(echo "$i" | awk -F "=" '{print $1}')
n=$(echo "$i" | awk -F "=" '{print $2}')
q=$(echo "$i" | awk -F "===" '{print $2}')
$sqlconnection \("$query"\)
done
雖然我可以獲取sql連接和查詢以回顯它,但實際上並沒有運行查詢! -一定有我想念的東西:)
sqlconnection
應該是一個函數,而不是字符串。 同樣,您無需在每個array
元素中都引用整個命令; 在調用函數時引用$q
就足夠了。
declare -a array=(
"1=Unprocessed===select count(*) from db where test='unknown'"
"2=Total===SELECT count(*) FROM db"
)
sqlconnection () {
/usr/local/bin/mysql -u user -passwd -h xx.xx.xx.xx -se "$@"
}
for i in "${array[@]}"; do
IFS== read s n _ _ q <<< "$i"
sqlconnection "$q"
done
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.