2007-12-20 18:33
展天
有关循环体使用的问题
有个KSH脚本,内容如下:
ls -l
echo "返回请按 " q ",刷新请按" r " : \c"
while read ans1
do aa=$ans1
if ["$aa"="q"]
then
break
elif
if ["$aa"="r"]
then
?????
fi
done
;;
问题:如何在接收到键盘输入"r"时候,重新执行ls -l 这条呢?也就是在????处用什么方式使循环重新开始?
[[i] 本帖最后由 展天 于 2007-12-22 16:03 编辑 [/i]]
2007-12-20 18:58
老农
你的shell没搞清楚循环的写法。
x=1
while [[ $x -lt 9 ]]
do
echo "返回请按 " q ",刷新请按" r " : \c"
read ans1
if ["$ans1"="q"]
then
x=10
fi
if ["$ans1"="r"]
then
x=1
fi
done
2007-12-20 19:14
展天
:L :L :L
谢谢,平时写shell不多,还需要多学习:L :L :lu3:
2007-12-20 19:38
展天
也许,是我没有说清楚,这个shell是一个大循环中的分支循环,这个小循环顶部的命令是一条有回显的命令,我需要达到的目标是,回显内容后等待键盘输入,当接收到键盘输入“q”时,清屏退出这个小循环,回到上层大循环构架的目录中,当接收到键盘输入"r"时,重新执行这条命令并再次等待键盘输入。
目前,参照老农提供的方法,从大循环执行这个小循环时,不做任何停留等待,回显内容一闪而过,然后直接回到上层大循环中了。
如何解决?
2007-12-22 16:03
展天
问题已经得到解决,谢谢各位兄弟:)
页:
[1]
Powered by Discuz! Archiver 5.5.0
© 2001-2006 Comsenz Inc.