shell 基础02

shell脚本-数组
       bash 支持一维数组 且不限定数组的大小。

        在shell中,数组使用括号括起来,使用空格进行分割          
    
       eg: myarray=(value1 value2 value3 value4)

             myarray=(a b c "d" '*')
        echo ${myarray[0]}    a
        echo ${myarray[1]}    b
        echo ${#myarray[*]}   获取数组中元素的个数 5
        echo ${#myarray[@]}   获取数组中元素的个数 5

shell 基本运算符
      
       shell支持多种运算符    
             算数运算符,关系运算符,布尔运算符,字符串运算符,文件测试运算符

       需要注意的是原生的bash不支持简单的数学运算,但是可以通过其它命令来实现。eg : awk expr

        主要介绍expr
        expr 是一款表达式计算工具,使用它能完成表达式的求值操作。

       eg:  

                 sum=`expr 3 + 4`      注意表达式间的空格需要保留,否则会原样输出
            echo $sum       7

                 定义变量a b c使用不同的算术运算符来进行测试。

             a=10                 
             b=13
             c=10
             val=`expr $a + $b`
             echo $val
             echo `expr $a - $b`
             echo `expr $a \* $b`  #注意此处的乘法符号需要进行转义
             echo `expr $a / $b`   #除法运算会自动取整
             echo `expr $b / 0`    #不可以被0除,error: division by zero
 
             echo `expr $b % $a`   #取余
            echo `expr $a != $b`  #bool 类型的运算 不等得0
             echo `expr $a == $c`  #bool 类型的运算 相等得1
                   
               关系运算符测试
                          -eq  检测连个数是否相等 相等返回true
                eg:
                       if `[ $a -eq $b ]`
            then
               echo '$a=$b'
               else
                echo '$a!=$b'
               fi
       
                        -gt 大于  -lt 小于  -ge 大于等于  le 小于等于

                eg:
                     if [ $a -gt $b ]
            then
                echo "$a 大于 $b"
             else
                echo "$a 小于 $b"  
             fi     

     shell脚本中的与或非
                 !  非运算
                 -o 或运算    
                 -a 与运算
                 && 短路与
                 || 短路或

     shell脚本中的字符串比较
               
              =  检测连个字符串是否相等

              -z 检测字符串长度是否为0 是 返回true
              -n 检测字符串长度是否为0 是 返回false
              -str 检测字符串是否为空 不为空返回true

echo 命令
         字符串输出

              eg: echo "this is a test file"
              eg:  echo  this is a test file
         双引号可以完全省略
              显示转义字符
                   echo "\"it is a test\""

read 命令 接收标准输入流。
eg:
       read name
       echo "$name it is a test"
     
       echo中实现转义字符的输出 需要有开启转义的标记

       eg: echo -e "jake will be the \n best one"

猜你喜欢

转载自blog.csdn.net/XiaoqiangNan/article/details/78583104