次のようなもの:
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
で問題が発生します 分割。それを回避する方法はいくつかあります。ただし、2つのフィールドのみを読み取り、そのうちの1つにスペースを含めるべきではない場合(guid
など) )、最後に「dangerous」フィールドを配置して、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