【发布时间】:2013-04-17 09:26:31
【问题描述】:
我正在尝试在 Ubuntu bash 中设置循环中的变量,该变量正在从数据库中获取记录集,但该变量设置为之前的值。 这是一个代码:
#!/bin/bash
PREV_FILE_PATH="127"
while true
do
echo "$PREV_FILE_PATH"
mysql -h$DB_HOST -u $DB_USER -p$DB_PASS $DB_NAME --skip-column-names --default-character-set=UTF8 -e "here is a query" | while read "here is getting variables from recordset";
do
PREV_FILE_PATH="777"
done
done
而且这段代码每次都会打印出来:
127 127 127
但是当我替换了这个块时-:
mysql -h$DB_HOST -u $DB_USER -p$DB_PASS $DB_NAME --skip-column-names --default-character-set=UTF8 -e "here is a query" | while read "here is getting variables from recordset";
只需 while true 并在循环结束时中断它可以正常工作并打印:
127 777 777 777
脚本创建一些子shell 并在该子shell 中运行该MySQL 查询。那么我应该怎么做才能让脚本改变那个变量呢?
【问题讨论】:
标签: mysql bash shell ubuntu subshell