【Linux_Shell 脚本编程学习笔记一、条件表达式】
条件表达式返回的结果都为布尔型
真为1,假为0
条件测试的表达式
[expression]
比较符
整数比较
-eq:比较两个整数是否相等,$A -eq $B
-ne:测试两个整数是否不等,不等则为真,等则为假
-gt:大于为真,小于为假
-lt:小于为真,大于为假
-ge:大于或者等于
-le:小于或者等于
-e File 测试文件是否存在
-f File 测试文件是否是普通文件
-d File 测试指定路径是否是目录
-r File 测试文件是否有写的权限
-w File 测试文件是否有写的权限
-x File测试文件是否有执行的权限
-z:判断指定的变量是否存在值
-n:测试字符是否为空 非空为真(0)
-s:文件的大小非0时为真
!:逻辑非
双目:
== 相等为真
!= 不等为真
> 大于为真
< 小于为真
-a:逻辑与 都为真才为真
-o:逻辑或 一个为真就为真
test expression
expression为条件表达式
if test (表达式为真)
if test !表达式为假
test 表达式1 –a 表达式2 两个表达式都为真
test 表达式1 –o 表达式2 两个表达式有一个为真
摩根定律
!(A -a B)= !A -o !B
!(A -o B)= !A -a !B
逻辑符
&&:逻辑与,都为真则为真
如果第一个条件是真的,需要对第二个条件进行判断
如果第一个条件是假的,不需要对第二个条件进行判断,结果已经确定为假。
||:逻辑或,一个为真则为真
当第一个条件为真的时候,不在去判断第二条件,因为第一个表达式已经决定了整个表达式为真
只有当第一个表达式为假的时候才回去判断第二个表达式
操作实例:
创建两个文件,一个是普通文件类型,另一个是文件目录
执行条件表达式
定义一个变量,将文件赋值给变量,然后通过条件表达式判断该文件是否存在 (补充: 使用变量的时候最好是加上双引号 " ")
编辑脚本
如果执行shell脚本时,后面跟着的参数的值 为 3 才能输出3个1,其他则不输出
在修改脚本,将&& 连接符号改成 ||
执行脚本 当只有前面的条件不成立,后面的条件才执行
下面图中的语句 [ -f /etc/host ] && { echo 1; echo 2; echo3 ;}
与之相等价的语句是
if [ 条件 ]
then
执行的命令
命令
fi
这条语句就是条件不成立时候执行的 [ -d /etc/hosts ] || { echo 1;echo 2;echo 3;}
【Linux_Shell 脚本编程学习笔记一、条件表达式】的更多相关文章
- 【Linux_Shell 脚本编程学习笔记三、分支与循环结构】
if 语句是实际生产工作中最重要且最常用的语句,所以,必须掌握牢固 if 条件语法 1. 单分支机构 if [ 条件 ] then 指令 fi 或 if [ 条件 ]; then 指令 fi ...
- 【Linux_Shell 脚本编程学习笔记六、shell的数值运算】
1.bc 命令的用法(可以整数也可以小数): bc是 UNIX下的计算器,它也可以用在命令行下面: 例: 给自变量 i 加 1 [root@docker Demo_test]# i= [root@do ...
- 【Linux_Shell 脚本编程学习笔记四、监控系统内存并报警企业案例脚本】
前置知识:awk 参考学习博客:https://www.cnblogs.com/bugingcode/p/8287914.html awk 'BEGIN{ commands } pattern{ co ...
- 【Linux_Shell 脚本编程学习笔记五、Oracle JDK1.8 安装shell 脚本】
脚本使用说明: 首先在脚本的同级目录下有个 jdk的安装包 脚本和安装包必须在同级目录下才能够安装(脚本没有优化,还可以使用 wget 从网上下载指定版本的 jdk 安装包) #!/bin/sh ...
- 【Linux_Shell 脚本编程学习笔记二、打印菜单】
综合实例: 打印选择菜单,一键安装Web服务 [root@zuoyan script]# sh menu.sh 1.[install lamp] 2. [install lnmp] 3. [ex ...
- Bash脚本编程学习笔记06:条件结构体
简介 在bash脚本编程中,条件结构体使用if语句和case语句两种句式. if语句 单分支if语句 if TEST; then CMD fi TEST:条件判断,多数情况下可使用test命令来实现, ...
- Bash脚本编程学习笔记08:函数
官方资料:Shell Functions (Bash Reference Manual) 简介 正如我们在<Bash脚本编程学习笔记06:条件结构体>中最后所说的,我们应该把一些可能反复执 ...
- Bash脚本编程学习笔记07:循环结构体
本篇中涉及到算术运算,使用了$[]这种我未在官方手册中见到的用法,但是确实可用的,在此前的博文<Bash脚本编程学习笔记03:算术运算>中我有说明不要使用,不过自己忘记了.大家还是尽量使用 ...
- Dart学习笔记-运算符-条件表达式-类型转换
Dart学习笔记-运算符-条件表达式-类型转换 一.运算符 1.算术运算符 + (加)- (减)* (乘)/ (除)~/ (取整) %(取余) 2.关系运算符 == (等等) != (不等) > ...
随机推荐
- svg用例
圆<circle cx="x" cy="y" r="r" style="stroke:black;fill:none&quo ...
- liunx搭建配置
预安装准备工具 yum -y install gcc gcc-c++ wget cmake 安装 软件存放目录: /lnmp/ 软件安装目录: /usr/local/ 1.下载安装PCRE wget ...
- Java 中的接口有什么作用?以及接口和其实现类的关系?
Java 中的接口有什么作用? - Ivony的回答 - 知乎 https://www.zhihu.com/question/20111251/answer/16585393 这是一个初学者非常常见的 ...
- C# 基础Array
一.Array的作用 连续定义多个相同类型的变量,比如我定义1000个学生的学生年龄,int[] age = new int[1000];不需要慢慢的一个一个变量的定义,数组是不是很方便. 需要注意的 ...
- SQL查询出一个表数据插入到另一个表里
下面两中方式都是将 srcTbl 的数据插入到 destTbl,但两句又有区别的: 方式一 (select into from)要求目标表(destTbl)不存在,因为在插入时会自动创建. selec ...
- PID<->Port[转]
//Netstat -anb #include <Windows.h> #include "Psapi.h" #include <Iprtrmib.h> # ...
- Python 学习笔记:根据输入年月获取该月的第一天和最后一天
目的: 给定一个时间,比如:2020.02,要求返回所输入月份的第一天及最后一天,比如:('2020.02.01', '2020.02.29') 参考博客:https://blog.csdn.net/ ...
- 【YOLO学习】召回率(Recall),精确率(Precision),平均正确率(Average_precision(AP) ),交除并(Intersection-over-Union(IoU))
摘要 在训练YOLO v2的过程中,系统会显示出一些评价训练效果的值,如Recall,IoU等等.为了怕以后忘了,现在把自己对这几种度量方式的理解记录一下. 这一文章首先假设一个测试集,然后围绕这一测 ...
- layui子弹框调用父弹框方法
var thisFrame = parent.window.document.getElementById("LAY_layuiStampDuty1").getElementsBy ...
- Django框架篇
Django框架 1.HTTP超文本传输协议 8中请求方法 GET , POST ,HEAD ,PUT ,DELETE , TRACE ,OPTIONS ,CONNCT 状态码 1xx ;服务器收到请 ...