文档章节

shell编程总结8(if相关)

心中的理想乡
 心中的理想乡
发布于 2017/02/25 21:29
字数 992
阅读 6
收藏 0

我们有高兴,有不高兴;我们有在意,有不在意;我们有在行,有不在行。。。我们之所以为人,是因为我们拥有大脑,情感与性格,我们不仅仅只会吃,只会做爱,我们还会品尝食物的美味,还会挑选与自己性格合得来的伴侣,我们更会如何抑制或是排解自我的负面情绪,不至于崩溃。你可以不多想,在意少,只顾自己,但是你一定会得到应有的报应,到那时,我想食色应该都会失色了。
1、使用if-then语句:
if command
then
    commands
fi
说明:bash sell中if语句运行if行定义的那个命令,如果该命令的退出码是0,位于then部分的命令就会被执行。如果该命令的退出码是其他的什么值,那么then部分的命令就不会被执行
举例:
    #!/bin/bash
    if data
        echo "it worked"
    fi
2、if-then-else语句:
if command
then
    commands
else
    commands
fi

3、嵌套if:
if command1
then
    commands
elif command2
then
    more commands
fi

4、使用test命令:test命令提供了在if-then语句中测试不同条件的途径。如果test命令中列出的条件成立,test命令就会退出并返回退出码0,这样if-then语句就与其他编程语言中的if-then语句一样了。
    举例:
        if test condition
        then
            commands
        fi
    另外一种使用方法:
        if [ commands ]
        then
            commands
        fi
        这种使用方式注意必须要在左括号的右侧与右括号的左侧各加一个空格,否则会报错
    主要判断条件:
        (1)数值比较
        (2)字符串比较
        (3)文件比较

5、数值比较
    主要比较的几个关键字:
        -eq    相等
        -ge    大于或等于
        -gt    大于
        -le    小于或等于
        -lt    小于
        -ne    不等于
    举例:
        if [ 3 -gt 2 ]
        then
            echo "This is a test"
        if
    注意:不能使用浮点值进行判断

6、字符串比较
    主要比较的几个关键字符:
        =        相同
        !=        不同
        <        小
        >        大
        -n     非0
        -z        为0
    问题:对于>与<这两个符号要进行转义:\>、\<
    测试项:test在字符串比较的时候,大小写情况

7、文件比较
    -d file 是否存在并且是一个目录
    -e file 是否存在
    -f file 是否存在并是一个文件
    -r file 是否存在并可读
    -s file
    -w file
    -x file
    -O file
    -G file
    file1 -nt file2
    file1 -ot file2

8、文件比较
    -d file 检查file是否存在并是一个目录
    -e file 是否存在
    -f file 是否存在并是一个文件
    -r file 是否存在并可读
    -s file 存在并非空
    -w file 存在并可写
    -x file 存在并可执行
    -O file 是否存在并属当前用户所有
    -G file 是否存在并且默认组与当前用户相同
    file1 -nt file2 检查file1是否比file2新
    file1 -ot file2 检查file1是否比file2旧
    举例:
        #!/bin/bash
        if [ -d $HOME ]
        then
            echo "your HOME directory exists"
            cd $HOME
        else
            echo "There is a problem with your HOME directory"
        fi

9、复合条件测试:一共有两种布尔运算符可用
    [ condition1 ] && [ condition2 ]
    [ confition1 ] || [ confition2 ]

10 if-then的高级特性
    (1)使用双尖括号:(( expression ))
                 说明:可以放入高级的数学表达式,test只支持简单的算术操作
                  另外支持的操作符:
                      ++、--、!(逻辑求反)、~(位求反)、**幂运算、<<(左位移)、>>(右位移)、&、|、&&、||
                  举例:
                      #!/bin/bash
                      var1=10
                      if (( $val1**2>90 ))
                      then
                          (( val2 = $val1**2))
                          echo "The square of $val2 is $val2"
                      fi
    (2)使用双方括号:[[ expression ]]
                 说明:双方括号里的表达式使用了test命令中采用的标准字符串进行比较,并且提供了test命令未提供的一个热性,模式匹配 
                 举例:
                     #!/bin/bash
                     if [[ $USER == r* ]]
                     then
                         echo "Hello $USER"
                     else
                         echo "Sorry.I do not know you"
                     fi
11、case命令;
            case variable in 
            pattern1 | pattern2) commands1;;
            pattern3) commands2;;
            *) default command2;;
            esac
        举例:
            #!/bin/bash
            case $USER in
            rich | barbara)
                echo "adf"
                echo "asdasd";;
            testing)
                echo "2342"
            jessica)
                echo "asd234"
            *)
                echo "sorry"
            esac

© 著作权归作者所有

共有 人打赏支持
心中的理想乡
粉丝 19
博文 75
码字总数 101203
作品 0
深圳
程序员
私信 提问
linux运维实战练习-2015年9月13日-9月15日课程作业

一、作业(练习)内容: 1、描述shell程序的运行原理(可附带必要的图形说明); 2、总结shell编程中所涉及到的所有知识点(如:变量、语法、命令状态等等等,要带图的哟); 3、总结课程所讲...

xjxiaolei
2015/09/23
0
0
python变量数据类型总结

今日在对比shell编程和python编程时,对于关键字、数据类型、流程控制、异常处理这些有了新的看法,同时对“面向过程编程-函数式编程-面向对象编程”的编程思想也有了一些更深的看法,所以准...

yumushui991
2017/03/09
0
0
2017-12-5Linux基础知识(15)shell编程

shell编程是在Linux的基础知识中所必须掌握的语言,它也是一个命令的集合,如果学会的话,我们将会事半功倍,将重复的操作通过shell编程脚本来实现,减轻了一定的负担,那么现在就来讲一下s...

刘祥宇
2017/12/07
0
0
教会你Linux Shell自动交互的三种方法

你了解Linux系统么?你是Linux系统的应用者么?如果你要学习linux,你可能会遇到Linux Shell自动交互问题,这里将介绍Linux Shell自动交互的解决方法,在这里拿出来和大家分享一下。 一、背景...

魏邪乎
2014/02/13
0
0
福利 | 2018 年,程序员全新的技术之路

点击上方“CSDN”,选择“置顶公众号” 关键时刻,第一时间送达! 年年岁岁花相似,岁岁年年人不同。新年伊始,看着朋友圈各种年终总结、新年新的 KPI,你是否会有些不同的感觉?作为互联网中...

csdnnews
01/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

0029-如何实现CDH元数据库MySQL的主备

1.文档编写目的 MySQL数据库自身提供的主从复制功能可以方便的实现数据的多处自动备份,实现数据库的扩展。多个数据备份不仅可以加强数据的安全性,通过实现读写分离还能进一步提升数据库的负...

Hadoop实操
17分钟前
2
0
阿里如何做到百万量级硬件故障自愈?

摘要: 随着阿里大数据产品业务的增长,服务器数量不断增多,IT运维压力也成比例增大。各种软、硬件故障而造成的业务中断,成为稳定性影响的重要因素之一。本文详细解读阿里如何实现硬件故障...

阿里云官方博客
18分钟前
4
0
配置resttemplate

<bean id="httpClientBuilder" class="org.apache.http.impl.client.HttpClientBuilder"factory-method="create"><property name="connectionManager"><bean class="org.apache.ht......

1713716445
21分钟前
0
0
Intersection of Two Linked Lists(leetcode160)

Write a program to find the node at which the intersection of two singly linked lists begins. For example, the following two linked lists: A: a1 → a2 ......

woshixin
27分钟前
1
0
Jrebel最新激活破解方式(持续更新)

https://blog.csdn.net/xingbaozhen1210/article/details/81093041

glen_xu
28分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部