bash 连接操作符(& && | 等)的使用
链式操作(Chaining Operators),就是用于将多个命令组合在一起,根据操作符类型执行各种复杂指令。链式操作常用于你在交互shell中写下一长串指令执行的时候,它让shell脚本的自动化能力更上一层楼。让机器在无人在线的时候,也能有条不紊的工作。本文将简要介绍一些常用的链式操作符,在描述功能的基础上再提供一些相应的例子。熟练掌握他们,可以让你编写脚本的能力大大提高,写出更快,更短,更易读的代码。
1. 与号(Ampersand &)
&符号的作用是将这条命令放到背景中运行。打出任意一条命令,并在结尾空格后添加&,本次命令将在后台运行,而不会阻塞控制台。你可以继续输入指令。
ping baidu.com &
此时,ping在后台执行,你仍可以输入指令(但源源不断的ping消息占据了屏幕,因为输出仍在控制台,可用 > 重定向)。
也可以两条指令一起放入背景(这个例子不太好,不应该同时启动两条相关的指令)。
apt-get update & apt-get upgrade &
详情请搜索“shell工作管理”、“shell背景”
2. 分号(semi-colon ;)
分号没有什么特别的,它会使得本次指令从前往后一条一条按顺序执行。
apt-get update ; apt-get upgrade ; mkdir test
上面的指令首先update,然后upgrade,最后创建文件夹test。
3. 双与号(AND &&)
使用&&连接的指令,只有当前一条指令成功执行(即返回0)时,才会执行后面的指令。这条指令常用于检查指令的先决条件。比方说,我想要用link连接tecint.com,但是首先我要确定能不能找到。
ping -c3 www.tecmint.com && links www.tecmint.com
4. 双竖线(OR ||)
与&&相似,||表示“或”。第一条指令执行返回0时(成功执行),第二条指令不会执行。只有第一条指令执行失败(返回非0)时,才会执行第二条指令。
3和4都是经典的“短路规则”
apt-get update || links tecmint.com
如果是普通用户,第一条执行没有权限,就会执行指令links。那如果指令一成功执行了呢?那很显然指令2就不会执行了。
mkdir test || links tecmint.com
这次有权限了,mkdir成功后,links不会执行。
5. 单竖线(PIPE |)
这个最常用,连接两个命令,前一个的输出作为后一个的输入,应用场景广泛。
ls -l | grep cpp
调用ls -l,并且只抓取其中含有cpp的部分行。
bash 连接操作符(& && | 等)的使用的更多相关文章
- SQL连接操作符介绍(循环嵌套, 哈希匹配和合并连接)
今天我将介绍在SQLServer 中的三种连接操作符类型,分别是:循环嵌套.哈希匹配和合并连接.主要对这三种连接的不同.复杂度用范例的形式一一介绍. 本文中使用了示例数据库AdventureWorks ...
- linq操作符:连接操作符
linq中的连接操作符主要包括Join()和GroupJoin()两个. 一.Join()操作符 Join()操作符非常类似于T-SQL中的inner join,它将两个数据源进行连接,根据两个数据源 ...
- python的字符串连接操作符+
如图, 运行后提示错误,这是“+” 是字符串连接操作符,字符串连接只能在被连接的每一个都是字符串时起作用.而以上程序试图将一个字符串同一个非字符串连接会引发一个异常,所以会报错. 正确的为: 或者是:
- RxJava2实战---第七章 合并操作符和连接操作符
RxJava2实战---第七章 合并操作符和连接操作符 RxJava的合并操作符: startWith():在数据序列的开头增加一项数据. merge:将多个Observable合并为一个. merg ...
- 【git】本地git bash连接远程库github
重要参考: https://www.liaoxuefeng.com/wiki/896043488029600 https://segmentfault.com/a/1190000003728094 正 ...
- VBA连接操作符
VBA支持以下连接运算符. 假设变量A=5,变量B=10,则 - 运算符 描述 示例 + 将两个值添加为变量,其值是数字 A + B = 15 & 连接两个值 A & B = 510 ...
- git bash 连接github并提交项目工程
借鉴博客:https://www.cnblogs.com/flora5/p/7152556.html https://blog.csdn.net/heng_yan/article/details/79 ...
- 怎样用 Bash 编程:逻辑操作符和 shell 扩展
学习逻辑操作符和 shell 扩展,本文是三篇 Bash 编程系列的第二篇. Bash 是一种强大的编程语言,完美契合命令行和 shell 脚本.本系列(三篇文章,基于我的 三集 Linux 自学课程 ...
- Oracle 的基本操作符
!= 不等于 select empno,ename,job from scott.emp where job!='manager' ^= 不等于 select empno,ename,job from ...
- oracle操作符
Oracle中算术操作符(+)(-)(*)(/) 值得注意的是:/ 在oracle中就相当于显示中的除法 5/2 = 2.5 比较操作符: 其中等号可以换成其他运算符:(后面为该操作符的单条件查询样例 ...
随机推荐
- IPython notebook(Jupyter notebook) 设置密码
本文共给出两种密码设置方法,一种为直接设置密码法(较为便捷),另一种为hash密码设置法 =================================== 第一种: 直接设置密码 注意: i ...
- python中numpy.random.seed设置随机种子是否影响子进程
给出代码: from multiprocessing import Process import numpy as np class NN(Process): def __init__(self, i ...
- tensorflow1.x——如何在python多线程中调用同一个session会话
如何在python多线程中调用同一个session会话? 这个问题源于我在看的一个强化学习代码: https://gitee.com/devilmaycry812839668/scalable_age ...
- 白鲸开源 X SelectDB 金融大数据联合解决方案公布!从源头解决大数据开发挑战
业务挑战与痛点 随着互联网技术的发展.云计算技术的成熟.人工智能技术的兴起和数字化经济的崛起,数据已成为企业的核心资产.在金融行业中,数字化已成为了支撑各类业务场景的核心力量,包括个人理财.企业融资. ...
- 21-canvas事件监听
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="U ...
- CentOS ssh版本升级
1.升级openssl yum install perl wget https://goodrain-delivery.oss-cn-hangzhou.aliyuncs.com/fuzhoushuch ...
- TwinCAT3 - 实现CiA402
目录 1,起缘 2,想办法 3,开搞 3.1,CANOpen通信 3.1.1 对象字典 3.1.2 通信建立 3.2,CiA402伺服状态机 3.3,伺服运行 3.3.1 操作模式 3.3.2 轮廓位 ...
- 我的微服务项目之IdentityServer4
2021,祝大家新年快乐!!! 2021年了,新的一年应该有新的计划,我的计划是准备去学习微服务,所以我将我自己的博客项目拆分成了一个微服务项目,用来给自己学习,项目地址:http://www.tt ...
- 【测试平台开发】——01Vue前端框架实操
一.VScode官网地址 https://code.visualstudio.com/ 但是官网下载贼慢,需要修改下国内地址: 原地址:https://az764295.vo.msecnd.net/s ...
- CSS – 管理
前言 CSS 有好几种写法. 它们最终出来的效果是一样的, 区别只是在你如何 "写" 和 "读" 或者说开发和维护. 这已经不是如何"实现" ...