LoveUnix » 编程开发 & Rational » 有关循环体使用的问题
让LU留住您的每

一天 让LU博客留住您的每一天
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.