Chinaunix
标题:
管道与重定向read后,变量异常
[打印本页]
作者:
ran3guns
时间:
2012-07-20 10:56
标题:
管道与重定向read后,变量异常
本帖最后由 ran3guns 于 2012-07-20 11:02 编辑
这个脚本参数为一个文件名, 功能是输出文件的行数。
问题: cat file | 把数据传递给read的时候, 最后的行数变量i失效了。
< file 这种重定向的方式read的时候,变量就没有失效。
那位能解释下,不胜感激。
测试数据:
text.txt 文件内容为 1
运行脚本后输出:
cat ... finished->
< file ... finished->1
复制代码
#!/bin/bash
cat "$1" |
while read LINES
do
i=$(($i+1))
# echo $i
done
echo "cat ... finished->$i"
# 这里i应该是文件 $1的行数, 但是实际输出为 空
while read LINES
do
j=$(($j+1))
# echo $j
done < "$1"
echo "< file ... finished->$j"
#这里j的输出就正常了。
复制代码
作者:
jiejie455
时间:
2012-07-20 11:02
管道产生了子进程
作者:
ran3guns
时间:
2012-07-20 11:09
回复
2#
jiejie455
却是是这样的, 感谢!
另请教 把数据从子进程返回给父进程有哪些方法(不考虑文件)?
作者:
zooyo
时间:
2012-07-20 13:28
提示:
作者被禁止或删除 内容自动屏蔽
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2