shell中的流程控制

shell中的流程控制

1、if判断

  • 语法:if [ 条件判断式 ];then

    ​ 程序

    ​ fi

    ​ 或者

    ​ if [ 条件判断式 ]

    ​ then

    ​ 程序

    ​ fi

    注意事项:

    • [ 条件判断式 ] ,中括号和条件判断式之间必须有空格
    • if后要有空格

范例:输入一个数字,如果是1,则输出nihao,如果是2,则输出zaijian,如果是其他,什么也不输出。

shell中的流程控制

shell中的流程控制

2、case语句

  • 语法: case $变量名 in

    “值1”)

    如果变量的值等于1,则执行程序1

    ;;

    “值2”)

    ​ 如果变量的值等于2,则执行程序2

    ;;

    …省略其他分支…

    *)

    ​ 如果变量的值都不是以上的值,则执行此程序

    ;;

    esac

    注意事项:

    1)case行尾必须为单词“in”,每一个模式匹配必须以右括号“)”结束。

    2)双分号“;;”表示命令序列结束,相当于java中的break。

    3)最后的“*)”表示默认模式,相当于java中的defalt

范例:输入一个数字,如果是1,则输出ni hao,如果是2,则输出zai jian,如果是其他,输出hello

shell中的流程控制

shell中的流程控制

3、for循环

语法:for ((初始值;循环控制条件;变量变化))

​ do

​ 程序

​ done

范例:从1加到100

shell中的流程控制

shell中的流程控制

语法2:for 变量 in 值1 值2 值3…

​ do

​ 程序

​ done

范例:打印所有输入参数(观察*与@的区别)

  • 使用$*

shell中的流程控制

shell中的流程控制

shell中的流程控制

shell中的流程控制

总结:由上图可以看出"""*"将所有参数看做一个整体输出,只循环一次;而"@"将输出参数分开输出,执行三次循环。

4、while循环

语法: while [条件判断式]

​ do

​ 程序

​ done

范例:从1加到100

shell中的流程控制

shell中的流程控制