linux if 括号用法总结
shell中括号的特殊用法 linux if多条件判断
一. bash [ ] 单双括号
基本要素:
Ø [ ] 两个符号左右都要有空格分隔
Ø 内部操作符与操作变量之间要有空格:如 [ “a” = “b” ]
Ø 字符串比较中,> < 需要写成\> \< 进行转义
Ø [ ] 中字符串或者${}变量尽量使用"" 双引号扩住,避免值未定义引用而出错的好办法
Ø [ ] 中可以使用 –a –o 进行逻辑运算
Ø [ ] 是bash 内置命令:[ is a shell builtin
1.测试时逻辑操作符
-a |
逻辑与,操作符两边均为真,结果为真,否则为假。 |
-o |
逻辑或,操作符两边一边为真,结果为真,否则为假。 |
! |
逻辑否,条件为假,结果为真。 |
举例: [ -w result.txt-a -w score.txt ] ;echo $? // 测试两个文件是否均可写
二. bash [[ ]] 双方括号
基本要素:
Ø [[ ]] 两个符号左右都要有空格分隔
Ø 内部操作符与操作变量之间要有空格:如 [[ “a” = “b” ]]
Ø 字符串比较中,可以直接使用 > < 无需转义
Ø [[ ]] 中字符串或者${}变量尽量如未使用"" 双引号扩住的话,会进行模式和元字符匹配
[root@localhostkuohao]# [[ "ab"=a* ]] && echo "ok"
ok
Ø [[] ] 内部可以使用 && || 进行逻辑运算
Ø [[ ]] 是bash keyword:[[ is a shell keyword
[[ ]] 其他用法都和[ ] 一样
二者共同特性:
Ø && ||-a –o 处理
Ø [[ ]] 和 [ ] 都可以和 ! 配合使用
优先级 ! > && > ||
逻辑运算符 < 关系运算符
逻辑运算符 : ! && || -a -o
关系运算符 : < > \> \< == = != – eq –ne -gt -ge –lt -le
-----------------------------------------------------------------------------
n [[ ]] 比[ ] 具备的优势
----------------------------------------------------------------------------
①[[是 bash 程序语言的关键字。并不是一个命令,[[ ]] 结构比[ ]结构更加通用。在[[和]]之间所有的字符都不会发生文件名扩展或者单词分割,但是会发生参数扩展和命令替换。
②支持字符串的模式匹配,使用=~操作符时甚至支持shell的正则表达式。字符串比较时可以把右边的作为一个模式,而不仅仅是一个字符串,比如[[ hello == hell? ]],结果为真。[[ ]] 中匹配字符串或通配符,不需要引号。
③使用[[ ... ]]条件判断结构,而不是[... ],能够防止脚本中的许多逻辑错误。比如,&&、||、<和> 操作符能够正常存在于[[ ]]条件判断结构中,但是如果出现在[ ]结构中的话,会报错。
④bash把双中括号中的表达式看作一个单独的元素,并返回一个退出状态码。
linux if 括号用法总结相关推荐
- Linux下wine用法
Linux下wine用法 下面是wine的使用方法. 一.要在Linux下运行,wine是必不可少的,所以,请将wine安装到你的系统里. 二.将你的Windows所在的分区加载到某个目录.(本文假定 ...
- linux md5sum 的用法(转)
MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改.MD5全称是报文摘要算法(Message-Digest Algorithm 5),此算法对任意长度的信息逐位进行计算,产生一个二进制长度 ...
- Linux export 命令用法
Linux export 命令用法 Linux export 命令用于设置或显示环境变量. 在 shell 中执行程序时,shell 会提供一组环境变量.export 可新增,修改或删除环境变量,供后 ...
- Linux epoll的用法
Linux epoll的用法 epollfd_create函数 #include <sys/epoll.h>int epoll_create (int __size) 参数 含义 __si ...
- Linux中find用法整理
一.Linux中find常见用法示例 ·find path -option [ -print ] [ -exec -ok command ] {} /; ...
- Linux cat 命令用法
cat主要有三大功能: 1.一次显示整个文件. $ cat filename 2.从键盘创建一个文件. $ cat > filename 只能创建新文件,不能编辑已有文件. 3.将几个文件合并为 ...
- c语言strTrimed函数用法介绍,linux type命令用法_转
在脚本中type可用于检查命令或函数是否存在,存在返回0,表示成功:不存在返回正值,表示不成功. $ type foo >/dev/null 2>&1 || { echo > ...
- Shell最全大括号{}、中括号[]、小括号()用法实例
1.大括号{ }用法实例 1)纯{ }用法 拓展功能:例如:ls {name1,name2}.sh :touch {1..3}.sh 代码组织功能:例如:多条命令在当前shell中执行 { cmd1; ...
- linux signal用法,Linux 信号 signal 用法详解及注意事项
Linux 信号 signal 用法详解及注意事项 1) SIGHUP 本信号在用户终端连接 (正常或非正常) 结束时发出, 通常是在终端的控 制进程结束时, 通知同一 session 内的各个作业, ...
- linux下rdesktop用法
我自己用的参数rdesktop -g workarea -D -r clipboard:PRIMARYCLIPBOARD -a 16 -x lan 192.168.1.2 rdesktop是Linux ...
最新文章
- iPhone开发之网络编程 AsyncSocket
- mysql中日期相减_如何使用MySQL数据库
- 欧几里得算法和扩展欧几里得算法(Euclidean_Algorithm and Extended_Euclidean_Algorithm)
- RocketMQ的Consumer详解之重复消息的解决方案
- 基于.NetCore3.1系列 —— 认证授权方案之授权揭秘 (下篇)
- mysql 锁 代码_MySQL中的锁实例
- 鼠标linux驱动安装失败,win7插入鼠标提示未能成功安装设备驱动程序怎么办
- pythonfor循环例句_Python for 循环语句
- VScode 知识点查阅
- linux安装qq权限不够,[操作系统]Linuxqq安装及其所引发的问题{权限位是 777 (必须 =0755 且 =0755)}...
- 被远程之后,键盘失灵问题
- 平时收集的一些有关UED的团队和个人博客
- DEV编写C语言方法简介
- 基于混合高斯分布的EM算法提取声音特征并识别男女性别
- 计算机设计大赛赛事总结怎么写,北京科技大学计算机与通信工程学院-2018年计算机设计大赛总结会暨姚琳副教授学术报告...
- 手机游戏服务器都是什么协议,手机网游的服务器架构
- 初步完成了一个处理PEN3电子鼻气味传感数据的Matlab-GUI程序
- 将时谐电磁场引入工程电磁场的意义_工程电磁场答案第八版
- spring aop(面向切面编程)
- java的包装类不可变_为什么像java中的布尔类包装类是不可变的?
热门文章
- Windows开机启动项/自启动项文件夹位置
- 截取字符串中某一段数据
- android第三方好用,有哪些好用的安卓ROM值得推荐?安卓端最好的第三方ROM介绍...
- 小觅深度相机标准版 ROS使用
- 服务器是用集成网卡好还是独立网卡好
- 思维导图之----javascript正则表达式知识树
- 区块链基础知识的归纳与总结
- 知识图谱(Knowledge Graph, KG)(王昊奋老师-课程学习笔记)
- 计算机外设原理,计算机外设原理是什么
- The English (Porter2) stemming algorithm