Linux Shell脚本逻辑操作符简介
在写程序时,会用到条件判断,测试条件是否成立。很多时候,判断条件是多个的,这个时候需要用到逻辑操作符。shell脚本中常用的有哪些逻辑操作符呢?
1、逻辑与: -a
格式: conditon1 -a condition2
结果:codition1和conditon2 都为真,才返回真,否则返回假。
演示:测试可执行文件lnmp
- [root@localhost ~]# [ -x lnmp -a -f lnmp ] #lmmp是可执行且是文件 结果返回真
- [root@localhost ~]# echo $?
- 0
- [root@localhost ~]# [ -x lnmp -a -d lnmp ] #lnmp可执行但不是目录 结果返回假
- [root@localhost ~]# echo $?
- 1
拓展:该操作符类似于其他语言的&& ,a 是and 的第一个字母
2、逻辑或:-o
格式: condition1 -o conditon2
结果:condition1和condition2中,有一个条件为真,即返回真,否则返回假
演示:测试可执行文件lnmp
- [root@localhost ~]# [ -x lnmp -o -d lnmp ] #lmmp是可执行但不是目录 结果仍返回真
- [root@localhost ~]# echo $?
- 0
- [root@localhost ~]# [ -L lnmp -o -d lnmp ] #lnmp可执行文件,但不是目录,也不是符号链接文件, 结果返回假
- [root@localhost ~]# echo $?
- 1
拓展:该操作类似于其他语言的||
提醒:-o 是单词or 的第一个字母o,而不是数字0
3、逻辑非:!
格式:! condition
结果:返回条件测试condition结果的相反值
演示:测试可执行文件lnmp
- [root@localhost ~]# [ ! -x lnmp ] #lnmp 是可执行文件,返回假
- [root@localhost ~]# echo $?
- 1
- [root@localhost ~]# [ ! -d lnmp ] #lnmp 不是目录,返回真
- [root@localhost ~]# echo $?
- 0
Linux Shell脚本逻辑操作符简介的更多相关文章
- Linux shell脚本编程(一)
Linux shell脚本编程: 守护进程,服务进程:启动?开机时自动启动: 交互式进程:shell应用程序 广义:GUI,CLI GUI: CLI: 词法分析:命令,选项,参数 内建命令: 外部命令 ...
- 【学习】Linux Shell脚本编程
1.脚本的组成和执行 Linux shell脚本的结构并不复杂,其主要由变量.内部命令以及shell的语法结构和一些函数.其他命令行的程序等组成,以下是一个简单的shell脚本. #!/bin/bas ...
- Linux shell脚本编程(二)
Linux shell脚本编程(二) 练习:求100以内所有偶数之和; 使用至少三种方法实现; 示例1: #!/bin/bash # declare -i sum=0 #声明一个变量求和,初始值为0 ...
- Linux Shell脚本攻略 读书笔记
Linux Shell脚本攻略 读书笔记 这是一本小书,总共253页,但内容却很丰富,书中的示例小巧而实用,对我这样总是在shell门前徘徊的人来说真是如获至宝:最有价值的当属文本处理,对这块我单独整 ...
- linux shell 脚本攻略学习20--awk命令入门详解
awk生于1977年,创始人有三个,分别为 Alfred Aho,Peter Weinberger, 和 Brian Kernighan,名称源于三个创始人的姓的首字母. 作用:处理文本文件. awk ...
- Linux shell脚本基础学习详细介绍(完整版)一
Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...
- Linux shell脚本编程(三)
Linux shell脚本编程 流程控制: 循环语句:for,while,until while循环: while CONDITION; do 循环体 done 进入条件:当CONDITION为“真” ...
- Linux Shell 脚本入门
linux shell 脚本格式 #!/bin/sh#..... (注释)命令...命令... 使用vi 创建完成之后需设置权限 chmod +x filename.sh 执行命令: ./filena ...
- Linux Shell脚本入门--cut命令
Linux Shell脚本入门--cut命令 cut cut 命令可以从一个文本文件或者文本流中提取文本列. cut语法 [root@www ~]# cut -d'分隔字符' -f fields &l ...
随机推荐
- ABP源码分析四十二:ZERO的身份认证
ABP Zero模块通过自定义实现Asp.Net Identity完成身份认证功能, 对Asp.Net Identity做了较大幅度的扩展.同时重写了ABP核心模块中的permission功能,以实现 ...
- jquery库和cityselect插 件的省市 级联
/*$(function(){ $("#select_provice").citySelect({ prov:"北京", nodata:"none&q ...
- 【Win 10 应用开发】UDP广播
我们知道,对于UDP协议的通信,除了可以用来聊天外,可以发送广播数据.只要向广播地址的某个端口发送数据就可以进行广播,子网中只要监听该端口的socket就能收到广播消息. 最简单的方法就是向255.2 ...
- 自定义jinja2 过滤器
今天,我们要讲的是自定义jinja2 过滤器这个知识点,因为官方文档对此一代而过,讲得不够清楚,所以我们专门拿出来讲一下. 例子 例子写了两个自定义过滤器,一个是转换字典到字符串的过滤器,一个是返回当 ...
- YYModel 源码解读 总结
在使用swfit写代码的过程中,使用了下oc写的字典转模型,发现有些属性转不成功,就萌生了阅读源码的想法. 其实一直都知道Runtime机制,但并没有系统的学习,可能是因为平时的使用比较少,无意间在g ...
- 编写高质量代码:改善Java程序的151个建议(第4章:字符串___建议56~59)
建议56:自由选择字符串拼接方法 对一个字符串拼接有三种方法:加号.concat方法及StringBuilder(或StringBuffer ,由于StringBuffer的方法与StringBuil ...
- Centos 上 Tengine安装
安装步骤: 1.系统环境 1.1 更新系统 [root@centos ~]# yum update -y 1.2 查看环境 [root@centos ~]# cat /etc/redhat-relea ...
- 通过pycharm使用git[图文详解]
前言 使用git+pycharm有一段时间了,算是稍有点心得,这边整理一下,可能有的方法不是最优,欢迎交流,可能还是习惯敲命令去使用git,不过其实pycharm已经帮忙做了很多了,我们可以不用记住那 ...
- QT 删除文件指定目录
bool deleteDir(const QString &dirName) { QDir directory(dirName); if (!directory.exists()) { ret ...
- WebSocket异常 通常每个套接字地址(协议/网络地址/端口)只允许使用一次
websocket的实例:http://blog.csdn.net/for_cxc/article/details/51500185 问题: 新建一个连接通信没有问题,但是如果关闭再建立就会报错:通常 ...