Bash循环结构

    技术2022-05-13  28

    Bash循环结构

    一、for结构

    For arg in list

    Do

    done

    有限循环,次数取决于list元素的个数,内容取决于list元素的值

    二、while结构

    While []

    Do

    Done

    条件循环,当条件为真时,执行一次循环

    三、until结构

    Until []

    Do

    done

    条件循环,当条件为假时,才执行一次循环

    四、case结构

    Case arg in

    );;

    );;

    Esac

    条件分支,注意每个分支中,条件和结果用”)”分开,结束用两个封号”;;”

    五、select结构

    六、代码

    #! /bin/bash

     

    for item in "a" "b" "c" "d" "e" "f"

    do

    echo "$item"

    done

     

    #######for result

    #a

    #b

    #c

    #d

    #e

    #f

     

    a="abc def ghi jkl mno pqr"

    for argu in `echo $a`

    do

    echo "$argu"

    done

    ######for result

    #abc

    #def

    #ghi

    #jkl

    #mno

    #pqr

     

    b=10

    c=20

    while [ "$b" -lt "$c" ]

    do

    echo "b=$b"

    let "b=$b+1"

    done

    #######while result

    #b=10

    #b=11

    #b=12

    #b=13

    #b=14

    #b=15

    #b=16

    #b=17

    #b=18

    #b=19

     

    b=10

    c=20

    while [ "$b" -lt "$c" ]

    do

       let "b=$b+1"

       if [ "$b" -eq "13" ]

       then

       continue

       fi

       echo "b=$b"

    done

    #######while result

    #b=11

    #b=12

    #b=14

    #b=15

    #b=16

    #b=17

    #b=18

    #b=19

    #b=20

     

    while [ "$var" != "end" ]

    do

    echo "While input variable"

    read var

    done

     

    until [ "$var" != "end" ]

    do

    echo "Until input variable"

    read var

    done

     

     

    echo "Hit a key, then hit return"

    read var

    case "$var" in

    "1" ) echo "var is 1" ;;

    "2" ) echo "var is 2" ;;

    *   ) echo "var is other" ;;

    esac

     

     

    select var in "123" "456" "789"

    do

    echo "ok is $var"

    break

    done

     

    七、关键点

    1for中的list可以用命令替换

    2read输入是var,而不是$var

    3select很直观,直接将list中的所有输出菜单样,但有待进一步。


    最新回复(0)