我有一个包含两列信息的
文件:
Box1 a1
Box2 a2
我试图逐行读取这个文件,并将每个行项目放入变量中
在第一遍,$a将包含Box1和$b将包含a1.
在第二遍,$a将包含Box2和$b将包含a2等.
我正在尝试实现的代码示例是:
for i in text.txt; do
while read line; do
echo $line | read a b;
done < text.txt;
echo $a $b;
done
这给我以下结果:
Box1 a1 Box2 a2
当我预期以下结果:
Box1 a1
Box2 a1
如何解决这个问题?
管道读取命令导致变量被设置在
一个子shell中,这使得它们不可访问(实际上它们已经消失)到其余的
代码中.
在这种情况下,您甚至不需要for循环或第二个read命令:
while read -r a b; do
echo $a $b
done < text.txt