Один из подходов состоит в том, чтобы использовать эту конструкцию (попробуйте, синтаксис немного странный):
cat << EOF | while read a b c ; do echo "a:$a b:$b c:$c" ; done
one two three
EOF
[Редактировать: очевидно, заменить cat
и one two three
на ваши фактические данные sql]
Вам необходимо убедиться, что mysql
не печатает ничего, кроме результата (без логотипа / уведомления об авторских правах / заголовка информации о версии и т. Д.) - я считаю, что для этого есть ключи командной строки.
Вы также столкнетесь с проблемами, если в возвращаемых данных есть пробелы или они разделены чем-то другим, а не только пробелами.Для таких случаев вы можете просто установить $IFS
в то, что никогда не происходит в ваших столбцах (возможно, |
), и сделать так, чтобы ваш запрос выводил этот символ между двумя полями.