文档章节

shell编程总结8(if相关)

心中的理想乡
 心中的理想乡
发布于 2017/02/25 21:29
字数 992
阅读 6
收藏 0
点赞 0
评论 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

© 著作权归作者所有

共有 人打赏支持
心中的理想乡
粉丝 8
博文 68
码字总数 61989
作品 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技术玩家 持续更新

[编辑器相关] Windows下用notepad++ 打造Linux 代码编辑环境 送给不使用vim的Linux Guy http://990487026.blog.51cto.com/10133282/1844735 ubuntu 源码编译安装最新的vim 8.0 http://990487...

990487026
2016/09/01
0
0
福利 | 2018 年,程序员全新的技术之路

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

csdnnews
01/01
0
0
教会你Linux Shell自动交互的三种方法

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

魏邪乎
2014/02/13
0
0
Shell 编程基础(一)

Shell脚本的关键在于输入多个命令并处理每个命令的结果,甚至需要将一个命令的结果传给另一个命令。Shell可以让你将多个命令串起来,一次执行完成。 基本格式: 第一行必须为固定格式,指明脚...

ljpwinxp
2017/11/26
0
0
Shell中的数组及其相关操作

Shell中数据类型不多,比如说字符串,数字类型,数组。数组是其中比较重要的一种,其重要应用场景,可以求数组长度,元素长度,遍历其元素,元素切片,替换,删除等操作,使用非常方便。 Sh...

孟飞阳
05/28
0
0
Linux Shell 数组建立及使用技巧

linux shell在编程方面比windows 批处理强大太多,无论是在循环、运算。已经数据类型方面都是不能比较的。 下面是个人在使用时候,对它在数组方面一些操作进行的总结。 1.数组定义 1 2 一对括...

Foundation
2015/09/28
29
0
“笨办法”学Bash Shell(持续更新中)

  Shell是用户与Unix/Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用Shell脚本编程,完成更加复杂的操作。      在GUI日益完善的今天,在系统管理等领域,Shell编程仍然...

dbtrain
2017/10/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

崛起于Springboot2.X之开发拦截器(21)

序言:几乎所有项目都需要拦截器,所以小伙伴们必须要掌握这门技术哦,不然只会mybaits增删改查那是实习生干的活呀。 1、创建拦截器类,implements HandlerInterceptor public class MyInce...

木九天
14分钟前
1
0
(转)SQL语句的执行顺序

(7) SELECT (8) DISTINCT <select_list> (1) FROM <left_table> (3) <join_type> JOIN <right_table> (2) ON <join_condition> (4) WHERE <where_condition> (5) GROUP BY <group_by_list> (......

Avner
23分钟前
0
0
1.14 救援模式

确保开机启动时连接镜像文件,如果是真机服务器,就需要:U盘或光盘镜像启动进入BIOS 不同主板进入bios按键不同,一般是F12或Esc 光标:移动到Boot(开机启动项) 减号移动:光标选中行,按-...

小丑鱼00
31分钟前
0
0
ES11-全文检索

高级别全文检索通常用于在全文本字段(如电子邮件正文)上运行全文检索。 他们了解如何分析被查询的字段,并在执行之前将每个字段的分析器(或search_analyzer)应用于查询字符串。 1.term查...

贾峰uk
34分钟前
0
0
java 复制对象有哪些方式

java 复制对象有哪些方式 Apache的 Common beanutils库 org.apache.commons.beanutils.BeanUtils.copyProperties(dest,origin); Springframework 的BeanUtil 依赖: <dependency> ......

黄威
49分钟前
2
0
jstack的简单使用

公司测试反应, 一个java应用的机器, 即使不做交易, cpu始终是30%多, 于是想到了jstack, 实践步骤记录一下: 1, 找出java应用的进程号 ps -ef|grep 应用名|grep -v grep 2, 找出pid下的cpu占用...

零二一七
56分钟前
1
0
导入CSV文件就行数据整理分析

#-*-coding:utf-8-*-import csv,os,re,mathlocalPath=input("请输入所有群文件的根目录:") #所有QQ群文件的物理根目录路径def info(): info_dic=[] dirList=os.listdi...

Kefy
今天
5
0
CoreText进阶(六)-内容大小计算和自动布局

CoreText进阶(六)-内容大小计算和自动布局 其它文章: CoreText 入门(一)-文本绘制 CoreText入门(二)-绘制图片 CoreText进阶(三)-事件处理 CoreText进阶(四)-文字行数限制和显示更...

aron1992
今天
1
0
一个Unity高人的博客,涉猎范围很广,深度也很深。

https://blog.csdn.net/ecidevilin/article/list/

爽歪歪ES
今天
0
0
Spring Cloud Config-Git后端

EnvironmentRepository的默认实现使用Git后端,这对于管理升级和物理环境以及审核更改非常方便。要更改存储库的位置,可以在Config Server中设置“spring.cloud.config.server.git.uri”配置...

itcloud
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部