while循环中使用read

王朝other·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

如下SHELL

#!/bin/sh

cat file | while read line

do

echo "press any key"

read key

done

read key这条语句不起作用,到底怎么回事?file为一个文本文件

while read line

do

ehco "hello"

done < file

下面引用由yjlucky在 2002/10/09 09:07pm 发表的内容:

如下SHELL

#!/bin/sh

cat file | while read line

do

...

read key 当然也是从file里读了.

在循环中用read可以用以下方法!

for line in `cat file`

do

echo "press any key"

read key

done

不行吧,那样line的内容就是一个个单词而不是一行行了。

楼主的意思好象是读完一行,敲任意键再读下一行吧?

line 的值时file全文不是一行。

程序的设计思路不是太好,若一定要这要作,也可以作到:

cat file | while read line

do

echo $line

(echo "press any key:c"; exec </dev/tty; read key)

done

高!

麻烦exec </dev/tty是做什么的?

我想应该是定向下一步的操作(read key)从键盘读输入吧

binary 说得对。

当需要对键盘输入进行判断并处理时,如下的脚本更好一点:

cat file | while read line

do

echo $line

echo " :: Please input any key(s):c"

str4read=""

while true

do

chr4read=`dd if=/dev/tty bs=1 count=1 2>/dev/null`

str4read=$str4read$chr4read

if [ "$chr4read" = "" ] ;then break; fi

done

echo " :: |$str4read|"

done

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航