shell条件测试和流程控制
一、条件测试操作
1、test
用途:测试特定的表达式是否成立,当条件成立时,命令执行后的返回值为0,否则为其他数值
格式:test 表达式
2、常见的测试类型
①测试文件状态
格式:[ 操作符 文件或目录 ]
常用的操作符:
-d:测试是否为目录
-f:测试是否为文件
-e:测试文件是否存在
-r:测试当前用户是否有读取的权限
-w:测试当前用户是否有写的权限
-x:测试当前用户是否有执行的权限
-L:测试是否为链接文件
②字符串比较
格式:[ 字符串1 = 字符串2 ]
[ 字符串1 != 字符串2 ]
[ -z 字符串1 ]
常用的测试操作符:
=:字符串内容相等
!=:字符串内容不相等
-z:字符串内容为空时,返回true,否则返回false
③整数值比较
格式:[ 整数1 操作符 整数2 ]
常用的测试操作符:
-eq:等于
-ne:不等于
-lt:小于
-le:小于等于
-gt:大于
-ge:大于等于
④逻辑测试
格式:[ 表达式1 ] 操作符 [ 表达式2 ]
常用的测试操作符:
-a:逻辑与,而且的意思,前后两个表达式都成立的时候,返回真,否则返回假
-o:逻辑或,或者的意思,前后两个表达式只要有一个成立,返回真,否则返回假
!:逻辑否,当指定的条件不成立时,返回真
二、if条件语句
1、单分支
2、多分支
三、case条件语句
四、while循环语句
五、for循环语句
六、continue跳过本次循环
七、break终止循环
八、shift迁移语句
用于传递位置变量,将$1~$9依次向左传递
1、若当前脚本程序获得的位置变量如下:
$1=file1 $2=file2 $3=file3 $4=file4
2、执行一次shift命令,各位置变量如下:
$1=file2 $2=file3 $3=file4
3、再次执行shift命令,各位置变量如下:
$1=file3 $2=file4
shell条件测试和流程控制的更多相关文章
- Shell条件测试和流程控制-4
- [Shell]条件判断与流程控制:if, case, for, while, until
---------------------------------------------------------------------------------------------------- ...
- shell条件判断与流程控制
一 条件判断式语句 1.按文件类型进行判断 测试类型 作用 -b 文件 判断文件是否存在,并且是否为块设备文件(是块设备文件为真) -c 文件 判断文件是否存在,并且是否为字符设备文件(是字符设备设备 ...
- shell条件测试test
shell条件测试可以通过以下两种方式: test 参数 测试内容 [ 参数 测试内容 ] 一.测试文件类型: test -e 文件名 (测试文件是否存在) [ - ...
- shell条件测试语句实例-测试apache是否开启
终于理解了shell条件测试语句"!="和"-n"的用法区别,于是有了如下的shell脚本,做为练习. 第一种方法:测试apache是否开启?字符串测试 #!/ ...
- Shell脚本 (三) 条件判断 与 流程控制
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 六.条件判断 1.基本语法 [ condition ](注意condition 前后要有空格) 注意:条 ...
- 【重点】Shell入门教程:流程控制(2)条件判断的写法
第三节:条件判断的写法 if条件判断中,if的语法结构中的“条件判断”可以有多种形式.测试结果是真是假,就看其传回的值是否为0. 条件测试的写法,有以下10种: 1.执行某个命令的结果 这里的命令,可 ...
- shell编程-条件判断与流程控制
1.条件判断式 按照文件类型进行判断: 两种判断格式: test -e /root/install.log [ -e /root/install.log ] 判断命令是否正确执行: [ -d /roo ...
- shell(shell变量、条件表达式、流程控制)
本章内容: 变量 运算 if语句 for语句 while语句 break.continue 实例 shell变量 1.shell变量简介 变量是任何一种编程语言都必不可少的组成部分,变量用来存放各种数 ...
随机推荐
- kali linux之Audacity
常用音频隐写工具 安装: sudo apt install audacity 初次打开的界面 看波的宽度分辨长短音 比较细的就是短音,代表".",比较粗的就是长音,代表" ...
- junit启动tomcat来进行单元测试
1.pom.xml配置下载需要的jar. <dependency> <groupId>junit</groupId> ...
- Vulnhub Breach1.0
1.靶机信息 下载链接 https://download.vulnhub.com/breach/Breach-1.0.zip 靶机说明 Breach1.0是一个难度为初级到中级的BooT2Root/C ...
- RecyclerView的通用适配器
本来这一个主题应该早就写了,只是项目多,属于自己的时间不多,所以现在才开动!! 前一段时间写了一篇文章,是关于ListView,GriView万能适配器,没有看过的同学,可以先看看那篇文章,然后在来学 ...
- [Swift实际操作]八、实用进阶-(3)闭包在定时任务、动画和线程中的使用实际操作
闭包的使用相当广泛,它是可以在代码中被传递和引用的具有独立功能的模块.双击打开之前创建的空白项目.本文将演示闭包在定时任务.动画和线程中的使用.在左侧的项目导航区,打开视图控制器的代码文件:ViewC ...
- Google 里的软件工程学
简评:原文作者 Fergus Henderson 在 Google 工作了 10 年以上,目前负责 Google 的 text-tospeech 工程小组.有很多书籍或文章会从 商业/管理 等非技术角 ...
- python 对mongodb进行压力测试
最近对mongoDB数据库进行性能分析,需要对数据库进行加压. 加压时,最初采用threading模块写了个多线程程序,测试的效果不理想. 单机读数据库每秒请求数只能达到1000次/s.而开发的jav ...
- 总结day23 ---- 网络编程,以及计算机基础概念
计算机网络的发展及基础网络概念 问题:网络到底是什么?计算机之间是如何通信的? 早期 : 联机 以太网 : 局域网与交换机 广播 主机之间“一对所有”的通讯模式,网络对其中每一台主机发出的信号都进行无 ...
- java的应用,SVN客户端的安装教程
1.先注册一个百度云账号,然后打开https://console.bce.baidu.com 这个网站,按照下面的图形点击 !!!!请注意这是要收钱的,但能学习到那用微信打开你的网站也是值得的. 2. ...
- Linux系统编程:文件I/O编程
文件I/O操作在Linux编程时是经常会使用到的一个内容,通常可以把比较大的数据写到一个文件中来进行存储或者与其他进程进行数据传输,这样比写到一个全局数组或指针参数来实现还要方便好多. 一.文件常用操 ...