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
下一篇 2018-04-10

相关推荐

  • CentOS7.4上装apache2.4.33提示 mod_http2

    mod_http2下载地址
    http://httpd.apache.org/docs/2.4/mod/mod_http2.html

    Linux笔记 2018-04-23
  • MySQL之SQL语法介绍

    结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名

    2018-06-07
  • 一次完整的http请求处理过程+MPM工作模式

     1、建立连接:接收或拒绝连接请求 2、接收请求:接收客户端请求报文中对某资源的一次请求的过程 Web访问响应模型(Web I/O)单进程I/O模型:启动一个进程处理用户请求,而且一次只处理一个,多个请求被串行响应多进程I/O模型:并行启动多个进程,每个进程响应一个连接请求复用I/O结构:启动一个进程,同时响应N个连接请求实现方法:多线程模型和事件驱动…

    2018-06-24
  • linux学习练习

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。[root@localhost etc]# cp -r /etc/skel /home/tuser1[root@localhost ~]# getfacl /home/tuser1/getfacl: Removing lead…

    Linux笔记 2018-07-15
  • Linux“文本三剑客”之grep

    Linux“文本三剑客”之grep grep,Global search REgular expression and Print out the line. 是Linux中常用的文本搜索工具,基于正则表达式(Regular Expression)和文本字符来编写模式(Pattern),然后根据指定的模式对目标文本逐行进行匹配,打印匹配到的行。 grep工具…

    2018-05-14
  • 在CentOS7上编译安装apache 2.4源码包,并启动此服务

    1 关闭firwalld systemctl stop firewalld systemctl disable firewalld 2 关闭SElinux setenforce 0 vim /etc/selinux/config 找到以SELINUX开头的那行,修改成SELINUX=disabled 以下就是脚本里的内容,执行就OK了 yum groupin…

    Linux笔记 2018-04-22