shell 语法

1). 条件表达式语法信息
    [ 1 -eq 1 ] && echo 1        <-- 表示条件成功,执行相应操作
    [ 1 -eq 1 ] || echo 1        <-- 表示条件失败,执行相应操作

    [ 1 -eq 1 ] && {            <-- 表示条件成功,执行相应多个操作
        echo 1
        echo 2
    }        
    [ 1 -eq 1 ] || {            <-- 表示条件失败,执行相应多个操作
        echo 1
        echo 2
    }
    总结说明: 以上条件表达式用法相当于if单分支语句
              系统脚本中单分支判断都不用if来进行条件判断


    [ 1 -eq 1 ] && {            <-- 表示条件成功,执行相应多个操作
        echo 1
        echo 2
    } || {
        echo 3                  <-- 表示条件失败,执行相应多个操作
        echo 4
    }
    总结说明: 以上条件表达式用法相当于if双分支语句
    
2). if条件语法信息
    if [ <测试表达式> ]            <-- 单分支if语句
    then
        指令信息...
    fi
    
    if [ <测试表达式> ]            <-- 双分支if语句
    then                            *补充: 在if语句中需要掌握冒号用法
        指令信息...
    else
        指令信息...
    fi    
    
    if [ <测试表达式> ]            <-- 多分支if语句
    then
        指令信息...
    elif [ <测试表达式> ]
    then
        指令信息...
    else
        指令信息...
    fi    
    总结说明: 多分支语句也可以类似于case条件语句

3). case条件语法信息
    a. 服务启动停止脚本(传参的个数有限)
    b. 根据菜单信息进行选择
    c. 有yes或no进行交互的时候
    case "变量" in
        1)
          指令01...
          ;;
        2)
          指令02...
          ;;
        3)
          指令03...
          ;;
        *)
          指令04...
    esac
    总结说明: case条件语句也可以类似于if多分支语句    
        
4). while循环语法信息
    while <测试表达式>
    do
        指令信息...
    done
    
    while true
    do
        指令信息...
        usleep xxx
    done
    总结说明: 实现守护进程方式运行
    
    while read line
    do
        指令信息...
    done<$1
    总结说明: 实现读取文件内容, 按行进行读取

5). for循环语法信息
    for 变量名 in 变量列表信息
    do
        循环指令信息...
    done
    
    for ((i=1;i<=10;i++))
    do
        循环指令信息...
    done
    
6). 函数编写方式
    function test(){
       local i                    <-- 设置函数局部变量信息
       return 11                <-- 设置函数执行调用后返回值信息
    }

    function test {
       local i                    <-- 设置函数局部变量信息
       return 11                <-- 设置函数执行调用后返回值信息
    }

    test(){
       local i                    <-- 设置函数局部变量信息
       return 11                <-- 设置函数执行调用后返回值信息
    }
    说明: 函数中如果有传参信息, 需要在调用函数时进行传参
    

原文地址:https://www.cnblogs.com/kingle-study/p/9913254.html