zoukankan      html  css  js  c++  java
  • (十)shell case, while, until, for, select, break, continue介绍

    case in 语句

    printf "input number:"
    read num
    case $num in
            1)
                    echo "one"
                    ;;
            2)
                    echo "two"
                    ;;
            *)
                    echo "error"
                    ;;
    esac
    
    (1)   case、in 和 esac 都是 Shell 关键字,num 表示表达式,1表示匹配模式。
            num 既可以是一个变量、一个数字、一个字符串,还可以是一个数学计算表达式,或者是命令的执行结    
            果,只要能够得到 num 的值就可以。
    (2)   1可以是一个数字、一个字符串,甚至是一个简单的正则表达式。    
    (3)   整体和c语言中的switch case相似  *) 相当于default
    printf "input a char"
    read -n 1 char
    
    case $char in
            [0-9])
                    echo "数字"
                    ;;
            [a-z])
                    echo "小写字母"
                    ;;
            *)
                    echo "error"
                    ;;
    esac
    

      

    while语句

    sum=2
    while ((sum < 20))
    do
            ((sum += i))
            ((i++))
    done
    echo "the sum is:$sum"
    
    printf "ctr+d结束,输入数字"
    while read n
    do
            ((sum += n))
    done
    echo "计算结果为:$sum"
    

      

    until语句

    utile: 到了条件才执行,

    while: 未到条件才执行,

    read num
    i=1
    until ((i > 3))
    do
            echo "num=$num i=$i"
            ((num += i))
            ((i++))
    done
    echo "the num is:$num"
    

      

    for语句

    #c语言风格
    sum=0
    for((i=1; i<=4; i++))
    do
            echo "i=$i"
    done
    
    #shell风格
    for n in {1..4}
    do
            echo "n=$n"
    done
    
    #使用shell通配符
    for filename in *.sh
    do
            echo $filename
    done
    

      

    select in 语句

    #ctrl+d, break 结束循环 select in 是无限死循环
    select num in "china" "english" "bali" "jopan" "break"
    do
            echo $num
    done
    
    printf "选一个你喜欢的品牌"
    select like in "ysl" "dior" "amas" "chanel"
    do
            case $like in
                    "ysl")
                            echo "口红"
                            break
                            ;;
                    "dior")
                            echo "香水"
                            break
                            ;;
                    *)
                            echo "重新输入吧"
            esac
    done

    break 和  continue

    Shell 中的 break 和 continue 能够跳出多层循环,也就是说,内层循环中的 break 和 continue 能够跳出外层循环。

    break num

    continue num

    for((i=1; i<=5; i++)); do
            for((j=1; j<=5; j++)); do
                    if((i*j==12)); then
                            continue 2
                    fi
                    printf "%d %d" $i $j
                    break 2
            done    
    done
    

      

    做一个优秀的程序媛
  • 相关阅读:
    asp.net的处理机制(.ashx/.aspx)
    docker使用记录二:mysql安装与配置
    docker使用记录一日常使用的命令
    git笔记十:本地仓库同步到gitlab
    git使用记录九:开发中临时加塞了紧急任务怎么处理
    git使用记录八:不同提交的指定文件的差异
    git使用记录七:对工作区和暂存区的一些操作场景
    git使用记录六:对commit的message做处理
    git使用记录四:.git分析
    git使用记录三:查看日志
  • 原文地址:https://www.cnblogs.com/oytt/p/13494832.html
Copyright © 2011-2022 走看看