что-то вроде:
mysql -e "SELECT `theme_name`, `guid` FROM `themes` WHERE `theme_purchased`='1' AND `theme_compiled`='0'" | while read theme_name guid; do
# use $theme_name and $guid variables
echo "theme: $theme_name, guid: $guid"
done
Короче говоря,
: команда mysql
выводит запись, разделенную '\ n', и поля, разделенные '\ t', когда вывод является конвейером. команда read
читает строку, разделяет поля и помещает каждую в переменную.
если ваши данные имеют пробелы в полях, у вас возникают проблемы с разделением по умолчанию read
. Есть несколько способов обойти это; но если вы читаете только два поля и в одном из них не должно быть пробелов (например, guid
), тогда вы можете поставить поле «опасное» в конце, а read
сделает все «лишним» в последней переменной.
как это:
mysql -e "SELECT `guid` `theme_name`, FROM `themes` WHERE `theme_purchased`='1' AND `theme_compiled`='0'" | while read guid theme_name; do
# use $theme_name and $guid variables
echo "theme: $theme_name, guid: $guid"
done