något som:
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
kort sagt:mysql
kommandoutgångar post separerade med '\n' och fält separerade med '\t' när utgången är en pipe. read
kommandot läser en rad, delar upp i fält och sätter var och en på en variabel.
om din data har mellanslag i fälten får du några problem med standard read
splittring. det finns några sätt runt det; men om du bara läser två fält och ett av dem inte ska ha några mellanslag (som guid
), så kan du sätta fältet "farligt" i slutet och read
kommer att lägga allt "extra" i den sista variabeln.
så här:
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