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

(0)
简单不简单简单不简单
上一篇 2018-04-10 11:23
下一篇 2018-04-10 17:55

相关推荐

  • 课堂笔记(6)

    笔记

    Linux笔记 2018-04-08
  • 磁盘分区之MSDOS与GPT的区别

    只介绍两者的区别,没有操作方法,做记录学习用

    2018-07-19
  • 第五周总结

    软RAID   mdadm:为软RAID提供管理界面   为空余磁盘添加冗余   结合内核中的md(multi devices)   RAID设备可命名为/dev/md0、/dev/md1、/dev/md2、/dev/md3等 如果硬盘只分出了一个分区,可以用 dd if=/dev/sdb of=/dev/sdc bs=1 count=66 skip=446…

    Linux笔记 2018-05-01
  • sed的用法

    sed是一种流编辑器,它一次处理一行内容。 处理时,把当前处理的行存储在临时缓冲区(pattern space),同时输出到屏幕,接着用sed命令处理缓冲区中的内容,接着读取下一行,这样不断重复,直到文件末尾。 用法: sed -[options] [操作] inputfile -n:不输出模式空间内容到屏幕,即不自动打印 -e: 多点编辑 -f:/PATH…

    2018-04-22
  • linux如何使用命令帮助

    Linux如何使用命令帮助 whatis:显示命令的简短描述 whatis命令在用 catman -w命令创建的数据库中查找command参数指定的命令、 系统调用、库函数或特殊文件名。whatis命令显示手册部分的页眉行。然后可以发出man命令以获取附加的信息。whatis命令等同于使用man -f命令。linux系统刚安装后不可立即使用使用 makewh…

    Linux笔记 2018-05-07
  • liunx 笔记

    服务器硬件—CPU      服务器CPU公司   :Inter    xeon  至 强  ltanium   安腾      AMD A lthlon  MP   IBM  power 这几种。 服务器CPU分主频、外頻、倍频三个频率。CPU类型 :x86   x64 (clsc)  ARM  m6l8000 ,m68k power  pow…

    Linux笔记 2018-04-01