亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1881 | 回復(fù): 7
打印 上一主題 下一主題

關(guān)于循環(huán)的一些問題? [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2008-11-08 21:50 |只看該作者 |倒序?yàn)g覽
這是一個(gè)腳本中關(guān)于條件和循環(huán)的部分:

if condition;then
    echo -n "xxxxxxx y/n" #以上condition的return value為0,此處打印是否重新執(zhí)行腳本。
    while read CHOICE
       do  case $CHOICE in
              y|Y)

???? #此處使用什么命令語句才能跳出循環(huán),使腳本重新執(zhí)行?
              ;;
              *)
              break
              ;;
           esac
       done
  elif condition
      cmd
  else
      cmd
fi

如果上述紅色部分使用continue語句,好像并不能跳出循環(huán),重新執(zhí)行腳本進(jìn)行條件判斷。

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2008-11-08 22:08 |只看該作者
如果上述紅色部分使用continue語句,好像并不能跳出循環(huán),重新執(zhí)行腳本進(jìn)行條件判斷。

LZ 有試驗(yàn)過嗎?

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2008-11-09 09:59 |只看該作者
由于字體的原因,前面發(fā)的貼看的不是很清楚,所以再發(fā)一個(gè)簡化了的腳本。

#!/bin/bash
#while.loop
if [ "$#" -ne 2 ];then
        echo -n "[y/n]: "
        while read CHOICE
        do
                case ${CHOICE} in
                        y|Y)
                        continue
                        ;;
                        *)
                        break
                        ;;
                esac
        done
  else
        echo "You are right"
fi

執(zhí)行該腳本后如果輸入"y"字符,還是不能跳出循環(huán)重新執(zhí)行該腳本。
[xfm@ubuntu:~]$ ./while.loop
[y/n]: y
^C
[xfm@ubuntu:~]$
以上還是在循環(huán),必需用Ctrl+c來中止。

在腳本中使用set -x來看一下執(zhí)行過程。
[xfm@ubuntu:~]$ ./while.loop
+ '[' 0 -lt 2 -o 0 -gt 2 ']'
+ echo -n '[y/n]: '
[y/n]: + read CHOICE
y
+ case ${CHOICE} in
+ continue
+ read CHOICE


以上紅色部分是輸入的字符"y",而藍(lán)色部分是輸入"y"后的執(zhí)行語句。

論壇徽章:
23
15-16賽季CBA聯(lián)賽之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午馬
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16賽季CBA聯(lián)賽之山東
日期:2017-12-21 16:39:1915-16賽季CBA聯(lián)賽之廣東
日期:2016-01-19 13:33:372015亞冠之山東魯能
日期:2015-10-13 09:39:062015亞冠之西悉尼流浪者
日期:2015-09-21 08:27:57
4 [報(bào)告]
發(fā)表于 2008-11-09 10:18 |只看該作者
原帖由 yezhulin1982 于 2008-11-9 09:59 發(fā)表
由于字體的原因,前面發(fā)的貼看的不是很清楚,所以再發(fā)一個(gè)簡化了的腳本。

#!/bin/bash
#while.loop
if [ "$#" -ne 2 ];then
        echo -n "[y/n]: "
        while read CHOICE
        do
        ...



#!/bin/bash
#while.loop
while :
do
if [ "$#" -ne 2 ];then
        echo -n "[y/n]: "
        while read CHOICE
        do
                case ${CHOICE} in
                        y|Y)
                        break
                        ;;
                        *)
                        exit
                        ;;
                esac
        done
  else
        echo "You are right"
fi
done

論壇徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2016-08-03 06:20:00數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2016-08-04 06:20:00
5 [報(bào)告]
發(fā)表于 2008-11-09 10:29 |只看該作者
break

論壇徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2016-08-03 06:20:00數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2016-08-04 06:20:00
6 [報(bào)告]
發(fā)表于 2008-11-09 10:30 |只看該作者
其實(shí)break也不行,它并不可以讓程序回到開始的那個(gè)if判斷處,如果你希望break可以做到,那么那個(gè)if外面還得包一層循環(huán)

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2008-11-09 11:29 |只看該作者
以下是一個(gè)系統(tǒng)當(dāng)前時(shí)間,根據(jù)輸入的位置變量"$1"加上或減去位置變量"$2"多少分鐘的time.pm腳本。

  1 #!/bin/bash
  2 #time.pm
  3
  4 if [ "$#" -ne 2 ];then
  5         echo "Please input two parameters,such as:[-+]m 0-59"
  6         echo -n "Do you again?[y/n] "
  7
  8         while read CHOICE
  9         do
10                 case ${CHOICE} in
11                 y|Y)
12                 echo -n "Please input two parameters,such as:[-+]m 0-59 "
13                 read PARM MIN
14                 exec /home/xfm/time.pm ${PARM} ${MIN}
15                 ;;
16                 *)
17                 break
18                 ;;
19                 esac
20         done
21
22   elif [ "$1" = "+m" -o "$1" = "m" ] && [ "$2" -ge 0 -a "$2" -le 59 ];then
23         time_p=$(date -d "+$2 minute")
24         echo ${time_p}
25
26   elif [ "$1" = "-m" ] && [ "$2" -ge 0 -a "$2" -le 59 ];then
27         time_m=$(date -d "-$2 minute")
28         echo ${time_m}
29   else
30         echo "The time's format is wrong"
31         exit
32 fi

終于弄好了。

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2008-11-09 11:33 |只看該作者
以上腳本只是用來練習(xí)shell編程用的,有些地方還請各位優(yōu)化一下。
thx!
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP