zoukankan      html  css  js  c++  java
  • shell脚本之流程控制语句

    一、分支控制语句

    1、if .. fi条件

    if condition; then

    action

    fi

    2、if .. else .. fi条件

    if condition;then

    action;

    else

    action

    fi

    3、if .. else if ..else ..fi条件

    if condition;then

    action;

    else if condition;then

    action;

    else

    action;

    fi

    注意:if和slse语句可以进行嵌套,if条件判断可能因此变得很长,可以使用逻辑运算符使他变得简洁一点:

    [ condition ] && action; #如果condition条件为真,则执行action;

    [ condition ] || action; #如果condition条件为假,则执行action;

    二、循环控制语句

    1、for循环

    for var in list;

    do

    action;

    done

    其中list可以是一个字符串、序列或数组等。

    采用c语言方式的for循环语句:

    for((i=0;i<10;i++))

    {

    action

    }

    for((i=0;i<10;i++));

    do

    action

    done

    2、while循环

    while condition

    do

    action

    done

    3、until循环语法

    until condition

    do

    action

    done

    二、逻辑运算符和逻辑表达式

    1、常用逻辑运算符如下:

    l &&(或者 -a):逻辑与

    l ||(或者 -o):逻辑或

    2、逻辑表达式

    1)算术比较:条件一般被放在[]内,切记中括号前后需要留有空格。

    常用的算术操作符:

    l -eq:等于

    l -ne:不等于

    l -gt:大于

    l -lt:小于

    l -ge:大于等于

    l -le:小于等于

    2)文件系统运行符:条件比较一般被放在[]内,切记中括号前后需要留有空格。

    l [ -f $file_var ]:给定变量包含正常的文件或文件名,返回真。

    l [ -x $var ]:给定的文件包含可执行权限,返回真。

    l [ -d $var ]: 给定的变量包含的是目录,返回真。

    l [ -e $var ]: 给定的变量包含的文件存在,返回真。

    l [ -c $var ]: 给定的变量包含一个字符设备路径,返回真。

    l [ -b $var ]: 给定的变量是一个块设备文件路径,返回真。

    l [ -w $var ]: 给定的文件包含可写权限,返回真。

    l [ -r $var ]: 给定的文件包含可读权限,返回真。

    l [ -L $var ]: 给定的文件包含一个符号链接,返回真。

    3)字符串比较:条件比较一般被放在双[]内,切记中括号前后需要留有空格。

    -z:字符串是空字符串,返回真。

    -n:字符串是非空字符串,返回真。

    4)test命令用来执行条件判断,test命令可以避免过多的[]。

    例如:

    if [ $var -eq 0];then

    echo "true"

    fi

    可以写成:

    if test $var -eq 0;then

    echo "true"

    fi

  • 相关阅读:
    LeetCode 109 Convert Sorted List to Binary Search Tree
    LeetCode 108 Convert Sorted Array to Binary Search Tree
    LeetCode 107. Binary Tree Level Order Traversal II
    LeetCode 106. Construct Binary Tree from Inorder and Postorder Traversal
    LeetCode 105. Construct Binary Tree from Preorder and Inorder Traversal
    LeetCode 103 Binary Tree Zigzag Level Order Traversal
    LeetCode 102. Binary Tree Level Order Traversal
    LeetCode 104. Maximum Depth of Binary Tree
    接口和多态性
    C# 编码规范
  • 原文地址:https://www.cnblogs.com/wcwen1990/p/7044871.html
Copyright © 2011-2022 走看看