如何从bash脚本有效地处理mysql的结果集?

时间:2013-07-23 18:31:09

标签: mysql linux bash shell

我很高兴看到编写一个bash脚本与MySQL进行交互是多么容易 但试着这个:

#!/bin/bash  

res=`mysql -u $USER -p$PASS students <<EOF | tail -n +2  
SELECT name FROM table WHERE age = 20 limit 1;  
EOF`  

for d in $res;  
do  
echo Result : $d  
done  

如果结果是“John Smith”,我得到:
Result: John
Result: Smith

如何解决这个问题呢? 似乎它将它视为2个值,而它是一个列。

1 个答案:

答案 0 :(得分:3)

你要问的一种方法是在循环之前添加:

IFS=$'\n'

这将更改默认的bash内部字段分隔符(IFS),默认情况下使用空格,制表符和新行。

我的示例仅适用于新行,因为这可能是您正在寻找的。