2016-06-28 33 views
0

也許我是過於複雜,但是,我已經建立了以下聲明:BASH:分配MySQL的SELECT結果的要素不同的變量

query="SELECT url, users FROM result as r INNER JOIN search as s ON s.UID = r.SearchID WHERE s.isProcessed = 0 

的下一步是,雖然循環的結果,但我需要能夠分別呼叫網站和用戶。這就是我正在嘗試它:

while read -r link users; do 
    output+=("$link", "$users") 
done < <(mysql -h $host -u $user -p$pwd -s -N -D $db -e "$query") 

for i in ${!output[@]} ; do 
    echo "${output[i]}" 

任何提示如何只回聲用戶,請? 以上將返回URL和用戶:(

+0

遞增數組索引你爲什麼把他們兩個在同一個數組中?創建一個鏈接數組,並創建另一個用戶數組 – Barmar

+1

另外,不應將逗號放在bash數組中,它不是分隔符,它會放在鏈接的末尾。 – Barmar

回答

0

用戶是在$output奇數元素,所以從1開始,並通過2

for ((i=1; i < ${#output[@]}; i+=2)); do 
    echo "${output[$i]}" 
done 
+0

謝謝。你的提示是否可以用簡單的if語句來解決這個問題?如果[i%2 = 1]就是這樣的;然後 \t \t \t \t echo「$ {output [i]}」; \t \t \t fi –

+0

您需要使用算術表達式:'if((i%2 == 1))' – Barmar

+0

感謝您的幫助。我可以看到這是工作形式。 –

相關問題