我目前正在尝试访问循环外部的变量,该循环在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专家,所以我有点迷失在这里。