LINUX.ORG.RU

Знатокам BASH (возможно и AWK)


0

0

Как результат выполнения sql запроса засунуть в массив, чтобы потом пройти по элементам массива в цикле. Т.е. при выполнении "select user from table" значения одиного столбеца попали в переменную $user[], а потом можно было обрабатывать в цикле

while [ $i -le $count ]

do

echo $user[$i] let "i += 1"

done


Ответ на: комментарий от no-dashi

Вопрос в том как результаты вывода sql запроса записать в items

anonymous
()

С ходу можно придумать финт с файлом:

$ cat save.sh
echo -e "use DB_NAME;\nselect COL_NAME from TABLE_NAME" | mysql MAY_BE_OPTIONS > temp.data
echo "..." >> temp.data
. read_data.sh < temp.data
rm -f temp.data

$ cat read_data.sh
unset i
unset a

i=0
read a[$i]
while [ ${a[$i]} != "..." ]
do
	read a[((++i))]
done
unset a[$i]

$. save.sh


Не проверял, но может работает :-). Без файла - надо подумать.

Lego_12239 ★★
()

А так не получится?

for users in `mysql -Ns -u<user> -p<password> <database_name> -e "select user from table"`
  do
    echo $user #just for example
  done

kvit
()
Ответ на: комментарий от dreamer

2(dreamer&kvit):

Вот так всегда, выеживаешься, выеживаешься, а оказывается все гораздо проще... блин... :-)

Lego_12239 ★★
()
Ответ на: комментарий от kvit

Если user-ов очень много, тогда надо по-другому:

mysql -Ns -u<user> -p<password> <database_name> -e "select user from table" | while read user;
do
echo $user #just for example
done

spirit ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.