Shell脚本语言基础三

内容一:Shell脚本语言-基本运算符

 1、算术运算符
    1.1 "+"运算
     注意:'expr'规定命令
     a=8388
     b=9388
     c=`expr $a + $b`
     echo "C的值:$c"

1.2 "-"运算
     注意:'expr'规定命令
     a=8388
     b=9388
     c=`expr $a - $b`
     echo "C的值:$c"

1.3 "*"运算
     注意:'expr'规定命令
     a=8388
     b=9388
     c=`expr $a \* $b`
     echo "C的值:$c"

1.4 "/"运算
     注意:'expr'规定命令
     a=8388
     b=9388
     c=`expr $a / $b`
     echo "C的值:$c"

1.5 "%"运算
     注意:'expr'规定命令
     a=8388
     b=9388
     c=`expr $a % $b`
     echo "C的值:$c"

1.6 "="运算
    注意:'expr'规定命令
     a=8388
     b=$a
     echo "B的值:$b"


1.7 "=="运算
    注意:"expr"规定命令 空格
     a=8388
     b=9688
     if [ $a == $b ]
     then
        echo "a等于b"
     else
        echo "a不等于b"
     fi


 2、关系运算符
 2.1 "-eq":检测两个数是否相等,相等返回true
     a=100
     b=200
     if [ $a -eq $b ]
     then
        echo "a等于b"
     else
        echo "a不等于b"
     fi

2.2 "-ne":检测两个数是否相等,不相等返回true
     a=100
     b=200
     if [ $a -ne $b ]
     then
        echo "a不等于b"
     else
        echo "a等于b"
     fi

2.3 “-gt”:检测左边数是否大于右边数,如果是,就返回true
     a=100
     b=200
     if [ $a -gt $b ]
     then
        echo "a大于b"
     else
        echo "a不大于b"
     fi
2.4 “lt”:检测左边数是否小于右边数,如果是,返回true
     a=100
     b=200
     if [ $a -lt $b ]
     then
        echo "a小于b"
     else
        echo "a不小于b"
     fi

2.5 “-ge” 检测左边数据是否(大于+等于)右边数 如果是,返回true
     a=100
     b=200
     if [ $a -ge $b ]
     then
        echo "a大于等于b"
     else
        echo "a小于b"
     fi

2.6 “-le”:检测左边数是否(小于+等于)右边数,如果是返回true
     a=100
     b=200
     if [ $a -le $b ]
     then
        echo "a小于等于b"
     else
        echo "a大于b"
     fi

 3、布尔值运算符
    3.1 "!":非运算,表达式true,返回true,否则返回false
     a=100
     b=200
     if [ $a != $b ]
     then
        echo "a不等于b"
     fi

    3.2 “-o”:或运算,有一个表达式为true,则返回true
     a=100
     b=200
     if [ $a -lt 200 -o $b -gt 200 ]
     then
        echo "成立"
     fi
    3.3 “-a”:与运算。两个表达式为true,则返回true
     a=100
     b=200
     if [ $a -lt 200 -a $b -gt 200 ]
     then
        echo "成立"
     else
        echo "不成立"
     fi

 4、逻辑运算符
    4.1 "&&":逻辑且 -and
     a=100
     b=200
     if [ $a -lt 200 -a $b -gt 200 ]
     then
        echo "成立"
     else
        echo "不成立"
     fi

4.2 "||":逻辑OR
     a=100
     b=200
     if [ $a -lt 200 ] || [ $b -gt 200 ]
     then
        echo "成立"
     else
        echo "不成立"
     fi
5、字符串运算
   5.1 "=":检测两个字符串是否相等,如果相等返回true
     a="aa"
     b="bb"
     if [ $a = $b ]
     then
        echo "字符串a等于字符串b"
     else
        echo "字符串a不等于字符串b"
     fi

5.2 “!=” 检测两个字符串是否相等,如果不相等返回true
     a="aa"
     b="bb"
     if [ $a != $b ]
     then
        echo "字符串a不等于字符串b"
     else
        echo "字符串a等于字符串b"
     fi

 5.3 “-z”: 检测字符串长度是否为0,如果是返回true
     a="aa"
     if [ -z $a ]
     then
        echo "a不存在值"
     else
        echo "a不为空,存在"
     fi

5.4 "-n":检测字符串长度是否为0, 如果不是0,返回true
     a="aa"
     if [ -n "$a" ]
     then
        echo "a不为空,存在"
     else
        echo "a不存在值"
     fi

5.5 “字符串”:检测字符串是否为空,不为空返回true
     a="aa"
     if [ $a ]
     then
        echo "a不为空"
     else
        echo "a为空"
     fi

 6、文件测试运算符

 file=“/Users/Wisdom/Desktop/进阶代码/流媒体/第三天/hello.sh”

6.1 “-d file” :检测文件是不是一个目录,如果是,那么返回true
     file="/Users/Wisdom/Desktop/进阶代码/流媒体/第三天/hello.sh"
     if [ -d $file ]
     then
        echo "是一个目录"
     else
        echo "不是一个目录"
     fi

6.2 ”-r file“:检测文件是否可读,如果是,那么返回true
     file="/Users/Wisdom/Desktop/进阶代码/流媒体/第三天/hello.sh"
     if [ -r $file ]
     then
        echo "可读"
     else
        echo "不可读"
     fi
6.3 ”-w file“:检测文件是否可写,如果是,那么返回true
     file="/Users/Wisdom/Desktop/进阶代码/流媒体/第三天/hello.sh"
     if [ -w $file ]
     then
        echo "可写"
     else
        echo "不可写"
     fi
6.4 “-x file”:检测文件是否是可执行文件,如果是返回true
     file="/Users/Wisdom/Desktop/进阶代码/流媒体/第三天/hello.sh"
     if [ -x $file ]
     then
        echo "可执行"
     else
        echo "不可执行"
     fi

6.5 “-f file”:检测文件是否是一个普通文件(既不是目录,也不是普通文件),如果是,那么返回true
     file="/Users/Wisdom/Desktop/进阶代码/流媒体/第三天/hello.sh"
     if [ -f $file ]
     then
        echo "文件为普通文件"
     else
        echo "文件为特殊文件"
     fi
6.6 “-s file”:检测文件是否为空(文件有内容),如果是,那么返回true
     file="/Users/Wisdom/Desktop/进阶代码/流媒体/第三天/hello.sh"
     if [ -s $file ]
     then
        echo "文件有内容"
     else
        echo "文件没有内容"
     fi

6.7 “-e file”:检测文件是否存在(包含了:目录和文件),如果是,返回true
     file="/Users/Wisdom/Desktop/进阶代码/流媒体/第三天/hello.sh"
     if [ -e $file ]
     then
        echo "存在"
     else
        echo "不存在"
     fi

内容二:Shell脚本语言-流程控制

1、“if”语句
    语法结构
        if[条件]
        then
            代码
        fi
    代码结构
         a="aa"
         b="bb"
         if [ $a = $b ]
         then
            echo "字符串a等于字符串b"
         fi

2、"if else"语句
    语法结构
        if[条件]
        then
            代码
        else
            代码
        fi
    代码结构
         a="aa"
         b="bb"
         if [ $a = $b ]
         then
            echo "字符串a等于字符串b"
         else
            echo "字符串a不等于字符串b"
         fi

 3、“if-else-if-else”
    语法结构
        if[条件]
        then
            代码
        elif[条件]
        then
            代码
        else
            代码
        fi
    代码结构
         a="aa"
         b="bb"
         if [ $a = $b ]
         then
            echo "字符串a等于字符串b"
         elif [ $a ]
         then
            echo "字符串a不能为空"
         else
            echo "字符串a不等于字符串b"
         fi


 4、“for”循环语句
     语法变量
        for 变量名 in item1 item2 item2...
        do
            代码
        done
    代码案例一
         for name in "aa" "bb" "cc"
         do
            echo $name
         done

 5、"while"循环
    语法结构
        while(条件)
        do
            代码
        done
    代码案例一
         a=1
         while(($a<3))
         do
            echo $a
            a=`expr $a + 1`
         done


 6、 “case”语句
    语法结构
        case 值 in
        模式1)
            代码
        ;;
         模式2)
            代码
         ;;
         模式3)
            代码
         ;;
        esac
    代码结构
         number=2
         case $number in
         1)
            echo "等于1"
         ;;
         2)
            echo "等于2"
         ;;
         3)
            echo "等于3"
         ;;
         esac

猜你喜欢

转载自blog.csdn.net/qq_33323291/article/details/80225873