簡體   English   中英

Bash腳本MySQL連接和通過變量查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM