shell脚本逻辑运算及条件判断

shell脚本基础,判断与运算命令用法大全

变量
bash变量类型:
           环境变量
           局部(本地)变量
               声明环境(全局)变量,赋值:declare -x name= VALUE
               删除环境(全局)变量:unset name
          位置变量
               $1 ,$ , ….          shift 轮替
          特殊变量
               $?,$#,$*,$@
shell中如何进行算数运算
     bash中的算术运算:help let
          +,-,*,/,%取模(取余),**(乘方)
                              例:A=3 B=6
     1. let 算数运算表达式
                              let c=$A+$B
          2 $ [算数运算表达式]
                              $[$A+$B]
          3$((算数运算表达式))
                              $(($A+$B))
          4expr 算数运算表达式,表达式中各操作数及运算符之间要有空格,而且必须有反引号
                              c=expr $A + $B 4
          5.随机数生成 $RANDOM (0-32767)
                              乘法符号有些场景中需要转义,如\*
 赋值
          增强型赋值:
          +=,-=,*=,/=,%=
          例如 let count +=3(自加3后赋值)
          自增,自减:
                    let var+=1
                    let var++
                    lat var-=1
                    let var–
—————————————————————————————————————————–
脚本调试
          测试脚本是否有语法错误
                    bash -n 脚本
                    bash -x 脚本: 调式执行
条件判断
          bash中如何实现条件判断
                    条件测试类型:
                              整数测试
                              字符测试
                              文件测试
条件测试的表达式:
                    [ expression ]
                    [ [ expression ] ] 使用正则表达式用
                    test expression
整数测试
          例 [ $A -eq $ B ]
                    -eq: 测试两个整数是否相等: 等于,为真|否则,为假
                    -ne: 测试两个整数是否不等: 不等,为真|否则,为假
                    -gt: 测试一个数是否大于另一个数:大于,为真|否则,为假
                    -lt: 测试一个数是否小于另一个数:小于,为真|否则,为假
                    -ge: 大于或等于
                    -le: 小于或等于
文件测试
          例[ -e /etc/passwd ]
                    -e FILE: 测试文件是否存在
                    -f FILE: 测试文件是否为普通文件
                    -d FILE: 测试指定文件是否为路径
                    -r FILE: 测试当前用户对指定文件是否有读权限
                    -w FILE: 测试当前用户对指定文件是否有写权限
                    -x FILE: 测试当前用户对指定文件是否有执行权限
字符测试
          例[ $A == $B ]
                    == 比较字符串,相同即为真,不同即为假
                    != : 比较字符串,不同即为真,相同即为假
                    =~: 左侧字符串是否能被右侧的PATTERN(正则)所匹配
                    -n string: 测试指定字符串是否为空,空则真,不空则假
                    -s string: 测试指定字符串是否为空,不空则真,空则假
                    > :
                    < :
逻辑运算
          与,或,非 ,异或(^)
          1:真 0:假
          与                                         或                                    非
          1 & 0 =0                              1 & 0 =1 !                    真 = 假
          0 & 1 =0                              0 & 1 =1 !                    假 = 真
          0 & 0 =0                             0 & 0 =0
          1 & 1 =1                               1 & 1 =1
命令间的逻辑关系
                    逻辑与:-a           &&            第一个条件为假时,第二个条件不再判断
                                                                  第一个条件为真时,第二个条件必须得判断
                    逻辑或:-o           ||               第一个条件为真时,第二个条件不在判断
                                                                  第一个条件为假时,第二个条件必须得判断
                    逻辑非:               !
控制结构

                    单分支if语句           双分支的if语句                      多分支if语句

          if 判断条件;then                     if判断条件;then                          if 判断条件1;then
                    statment1                              statment1                                     statment1
                    statment2                      else                                                 elif 判断条件2;then
          fi                                                       statment2                                    statment2
                                                             fi                                                 else
                                                                                                                          statment3
                                                                                                                   fi
for循环
进入条件,退出条件
for
while
until
for循环语法:
for 变量 in 列表;do
循环体
done

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/95623

发表评论

登录后才能评论

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班