使用管道導致變數在迴圈體外獲取不到
阿新 • • 發佈:2018-12-20
原指令碼
echo "123456789"|while read line
do
cat vc |while read field begin end
do
b=`echo $line| awk -v begin="$begin" -v end="$end" '{print substr($0,begin,end)}'`
echo "value b is:"$b
done
echo "value b is:"$b
done
輸出:
第二個列印並未打印出b的值。是由於使用了|,開啟子程序。
修改後:
echo "123456789"|while read line
do
while read field begin end
do
b=`echo $line| awk -v begin="$begin" -v end="$end" '{print substr($0,begin,end)}'`
echo "value b is:"$b
done < vc
echo "value b is:"$b
done
輸出: