无法在bash中循环获取mysql数据之外访问变量

时间:2017-07-24 15:33:24

标签: mysql bash variables scope

我目前正在尝试访问循环外部的变量,该循环在Bash中获取MySQL表的2列:

mysql dbnameplaceholder -N -uusernameplaceholder -ppasswordplaceholder -
h127.0.0.1 -se "SELECT value1,value2 FROM table1 WHERE 
value1='placeholdervalue'" | while read -r value1 value2;
do
    var_value1="$value1"
    var_value2="$value2"
done
echo "$var_value1  $var_value2" >> /tmp/script_debug

但输出为空。

我在这里阅读了变量范围http://mywiki.wooledge.org/BashFAQ/024并将原始代码更改为以下内容:

var_value1="NULL"
var_value1="NULL"
while read -r value1 value2;
do
    var_value1="$value1"
    var_value2="$value2"
done < <(mysql dbnameplaceholder -N -uusernameplaceholder -ppasswordplaceholder -
h127.0.0.1 -se "SELECT value1,value2 FROM table1 WHERE 
value1='placeholdervalue'")
echo "$var_value1  $var_value2" >> /tmp/script_debug

但这也不起作用。

顺便说一句,如果我在循环中回显我得到预期的结果,所以没有MySQL查询问题。我不是Bash专家,所以我有点迷失在这里。

0 个答案:

没有答案