Bash скрипт подключения к MySQL и запрос через переменную - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть сценарий 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 и запрос для его выводана самом деле не запускает запрос!- должно быть что-то, чего мне не хватает :)

1 Ответ

0 голосов
/ 26 февраля 2019

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
...