+ -
当前位置:首页 → 问答吧 → 关于read命令的两个问题

关于read命令的两个问题

时间:2011-12-10

来源:互联网

我想从文件里给两个参数赋值
代码:
while read x y;do echo $x $y ;done < file

结果是可以显示出$x,$y.
但是如果再运行echo $x $y就为空了...但是我要的效果就是在while外也能使用xy的值...

作者: 枫叶饭团   发布时间: 2011-12-10

while循环是直到read x y命令不成功才退出的,所以整个循环结束后xy的值是read读取不成功的值即空了

作者: sunfish   发布时间: 2011-12-10

代码:
read x y < file
一行一个值

作者: pocoyo   发布时间: 2011-12-10

pocoyo 写道:
代码:
read x y < file
一行一个值

不行哦,这样子只有一个值

作者: 枫叶饭团   发布时间: 2011-12-10

自己解决了,因为cat、管道等命令都会开子进程所以就成了局部变量...
用重定向就能防止开进程....

作者: 枫叶饭团   发布时间: 2011-12-10

我想从文件里给两个参数赋值
代码:
while read x y;do echo $x $y ;done < file

结果是可以显示出$x,$y.
但是如果再运行echo $x $y就为空了...但是我要的效果就是在while外也能使用xy的值...

作者: 枫叶饭团   发布时间: 2011-12-10

while循环是直到read x y命令不成功才退出的,所以整个循环结束后xy的值是read读取不成功的值即空了

作者: sunfish   发布时间: 2011-12-10

代码:
read x y < file
一行一个值

作者: pocoyo   发布时间: 2011-12-10

pocoyo 写道:
代码:
read x y < file
一行一个值

不行哦,这样子只有一个值

作者: 枫叶饭团   发布时间: 2011-12-10

自己解决了,因为cat、管道等命令都会开子进程所以就成了局部变量...
用重定向就能防止开进程....

作者: 枫叶饭团   发布时间: 2011-12-10