• linux常见命令学习汇总3-控制语句


    1、for循环

    for循环一般格式为:

    for 变量 in 列表
    do
        command1
        command2
        ...
        commandN
    done

    注意:

    1、列表可以用命令替代 比如`ls`

    2、{1..6} 花括号,中间两点或1 2 3 #中间是空格,不是逗号之类的

    3、for((i=11;i<=15;i++)) #双括号,没空格,没int说明

    2、while循环

    while command
    do
       Statement(s) to be executed if command is true
    done

    注意:

    1、
    i=$((i+1)) #表达式,得双括号加$

    2、let i++ #自加1可以用let

    3、if elif else fi语句

    Shell 有三种 if ... else 语句:

    • if ... fi 语句;
    • if ... else ... fi 语句;
    • if ... elif ... else ... fi 语句。
    • if ... elif ... fi 语句可以对多个条件进行判断,语法为:

      if [ expression 1 ]
      then
         Statement(s) to be executed if expression 1 is true
      elif [ expression 2 ]
      then
         Statement(s) to be executed if expression 2 is true
      elif [ expression 3 ]
      then
         Statement(s) to be executed if expression 3 is true
      else
         Statement(s) to be executed if no expression is true
      fi

      注意:

      1、read -p "请输入用户名:" userName #保存输入的变量到userName

    4、case语句

    case语句格式如下:

    case 值 in
    模式1)
        command1
        command2
        command3
        ;;
    模式2)
        command1
        command2
        command3
        ;;
    *)
        command1
        command2
        command3
        ;;
    esac

    注意:
    1、模式1) 半边括号
    2、;;模式判断介绍符
    3、*)表示其他模式
    4、case语句结束标记为反写esac

    5、for while语句实例与运行结果

    #!/bin/bash
    echo  "for ========"
    
    for i in 1 2 3 #中间是空格,不是逗号之类的
    do
        echo "i:$i"
    done
    
    for i in {5..10} #花括号,中间两点
    do
        echo "i:$i"
    done
    
    for((i=11;i<=15;i++)) #双括号,没空格,没int说明
    do
        echo "i:$i"
    done
     
    echowhile ======”
    i=1
    total=0
    while((i<=100))
    do
        total=$((total+i))
        i=$((i+1)) #表达式,得双括号加$
    done
    echo "total:$total"
    
    i=1
    total=0
    while((i<=100))
    do
            total=$((total+i))
            let i++  #自加1可以用let
    done
    echo "total:$total"
    [app@VM_4_53_centos cfltest]$ ./forwhile.sh 
    for ========
    i:1
    i:2
    i:3
    i:5
    i:6
    i:7
    i:8
    i:9
    i:10
    i:11
    i:12
    i:13
    i:14
    i:15while ======”
    total:5050
    total:5050

    6、if elif else fi语句实例与运行结果

    #!/bin/bash
    echo "if语句======="
    read -p "请输入用户名:" userName  #保存输入的变量到userName
    
    if [ $userName = root ]
    then echo "welcome root..."
    elif [ $userName = app ]  #elif的写法注意啦
        then echo "welcome app ..."
    else
        echo "please go out..."
    fi
    [app@VM_4_53_centos cfltest]$ ./contorlshell.sh
    if语句=======
    请输入用户名:root
    welcome root...
    [app@VM_4_53_centos cfltest]$ ./contorlshell.sh
    if语句=======
    请输入用户名:app
    welcome app ...
    [app@VM_4_53_centos cfltest]$ ./contorlshell.sh
    if语句=======
    请输入用户名:you
    please go out...

    7、case语句实例与运行结果

    #!/bin/bash
    echo "case语句=========="
    
    case $1 in   #case in
     start) #半边括号
        echo "starting ..."
     ;;
     stop)
        echo "stopping ..."
     ;;
     restart)
        echo "restart ..." 
     ;;
     *)   #其他情况用 * 表示
        echo "argument error ..."
     ;;  #每个分支结束加两次分号
    esac   #case 反过来写
    [app@VM_4_53_centos cfltest]$ ./caseesac.sh
    case语句==========
    argument error ...
    [app@VM_4_53_centos cfltest]$ ./caseesac.sh start
    case语句==========
    starting ...
    [app@VM_4_53_centos cfltest]$ ./caseesac.sh restart
    case语句==========
    restart ...
    [app@VM_4_53_centos cfltest]$ ./caseesac.sh stop
    case语句==========
    stopping ...
  • 相关阅读:
    Python eval 函数妙用
    502与504故障分析与解决方法
    [转]谈谈select, iocp, epoll,kqueue及各种网络I/O复用机制
    计算阶乘n!末尾0的个数
    C++中的Overload、Override和Overwrite
    C++中的空类与空结构体大小
    多线程编程之优先级翻转问题
    数据库原理之事务(二)
    数据库原理之事务(一)
    NoSQL之基础篇
  • 原文地址:https://www.cnblogs.com/shishibuwan/p/11243222.html
Copyright © 2020-2023  润新知