zoukankan      html  css  js  c++  java
  • shell 语法08-shell主要语法结构

    if语法结构

    单分支结构

    if <条件表达式>
        then
    		指令
    if
    
    if <条件表达式>;then
        指令
    if
    

    双分支结构

    if <条件表达式>
        then
    		指令
        else
            指令
    if
    

    多分支结构

    if <条件表达式>
        then
        		指令
        elif <条件表达式>
            then
                指令
        elif <条件表达式>
            then
                指令
        else
            指令
    if
    

    if条件语句多种条件表达式语法

    test条件表达式

    if test 表达式
        then
            指令
    fi
    

    []条件表达式

    if [ 字符串或算术表达式 ]
        then
            指令
    if
    

    [[]]条件表达式

    if [[ 字符串表达式 ]]
        then
            指令
    if
    

    (())条件表达式

    if ((算术表达式))
        then
            指令
    if
    

    命令表达式

    if 命令
        then
            指令
    if
    

    shell函数语法结构

    function 函数名() {
        指令 ......
        return n
    }
    
    function 函数名 {
        指令 ......
        return n
    }
    
    函数名() {
        指令 ......
        return n
    }
    

    shell的case语法结构

    case "变量" in
        值1)
            指令1 ......
            ;;
        值2)
            指令2 ......
            ;;
        *)
            指令3 ......
    esac
    

    shell的while语法结构

    # 当条件成立是,进入循环执行指令
    while <条件表达式>
    do
        指令
    done
    

    shell的until语法结构

    # 当条件不成立是,进入循环执行指令
    until <条件表达式>
    do
        指令
    done
    

    shell的for语法结构

    for 变量名 in 变量取值列表
    do
        指令 ......
    done
    
    for ((exp1; exp2; exp3))
    do
        指令 ......
    done
    

    shell的select语法结构

    select 变量名 [ in 菜单取值列表 ]
    do
        指令 ......
    done
    

    shell的数组语法结构

    1、用小括号将变量值括起来赋值给数组变量,每个变量值之间要用空格进行分隔

    array=(value1 value2 value3 ......)
    

    2、用小括号将变量值括起来,同时采用键值对的形式赋值。

    array=([1]=one [2]=two [3]=three)
    

    3、通过分别定义数据变量的方法来定义

    array[0]=a;array[1]=b;array[2]=c;
    

    4、动态地定义数组变量,并使用命令的输出结果作为数组的内容

    array=($(命令))
    array=(`命令`)
    

    打印命令

    打印指定元素

    echo ${array[i]}
    

    打印所有元素

    echo ${array[@]}
    echo ${array[*]}
    

    打印数组长度

    echo ${#array[@]}
    echo ${#array[*]}
    

    shell脚本运行的相关用法

    用法 说明
    sh test.sh & 把脚本test.sh放在后台执行
    control + c 停止执行当前脚本或任务
    control + z 暂停执行当前脚本或任务
    bg 把当前脚本或任务放在后台执行
    fg 把当前脚本或任务放在前台执行
    jobs 查看当前执行的脚本或任务
    kill 关闭执行的脚本任务
    break n 如果省略n,则表示跳出整个循环,n表示跳出循环的层数
    continue n 如果省略n,则表示跳过本次循环,忽略本次循环的剩余代码,进入循环的下一次循环。N表示退到第n层继续循环。
    exit n 退出当前shell程序,n为上一次程序执行的状态返回值。在下一个shell里可通过$? 接收n值。n值可以省略。
    return n 用于在函数里作为函数的返回值,以判断函数执行是否正确。可通过$? 接收n值。
  • 相关阅读:
    Codeforces 691A Fashion in Berland
    HDU 5741 Helter Skelter
    HDU 5735 Born Slippy
    HDU 5739 Fantasia
    HDU 5738 Eureka
    HDU 5734 Acperience
    HDU 5742 It's All In The Mind
    POJ Euro Efficiency 1252
    AtCoder Beginner Contest 067 C
    AtCoder Beginner Contest 067 D
  • 原文地址:https://www.cnblogs.com/liangjingfu/p/9468531.html
Copyright © 2011-2022 走看看