『忘了再学』Shell基础 — 7、Bash基本功能(多命令顺序执行)
Linux系统支持多条命令顺序执行,就是我可以依次输入多条命令后,统一按Enter键,顺序执行。
1、多命令执行符;
在多个命令之间加;
即可多命令顺序执行。
命令格式:命令1 ; 命令2
说明:
- 多个命令顺序执行,命令之间可以没有任何逻辑联系。
[root@localhost ~]# ls ; date ; cd /etc/
anaconda-ks.cfg install.log install.log.syslog
2020 03月 29日 星期日 05:08:28 CST
[root@localhost etc]#
- 不管前面的命令是否正确执行,后面的命令都会执行。
[root@localhost ~]# lswrqwr ; date ; cd /etc/
-bash: lswrqwr: command not found
2020 03月 29日 星期日 05:08:28 CST
[root@localhost etc]#
2、多命令执行符&&
&&
又叫逻辑与执行符。
命令格式:命令1 && 命令2
说明:
- 当命令1正确执行($?=0),则命令2才会执行。
- 当命令1执行不正确($?≠0),则命令2不会执行。
- 命令1和命令2之间可以没有任何逻辑联系。
- 练习1:命令1正确执行。
[root@localhost ~]# ls && echo yes
anaconda-ks.cfg install.log install.log.syslog
yes
- 练习2:命令1不正确执行。
[root@localhost ~]# lsfgdf && echo yes
-bash: lsfgdf: command not found
说明:
($?=0)
这里先不说什么意思,后边预定义变量在讲。
3、多命令执行符||
||
又叫逻辑或执行符。
命令格式:命令1 || 命令2
说明:
- 当命令1执行不正确($?≠0),则命令2才会执行。
- 当命令1正确执行($?=0),则命令2不会执行。
- 命令1和命令2之间可以没有任何逻辑联系。
- 练习1:命令1正确执行。
[root@localhost ~]# ls && echo no
anaconda-ks.cfg install.log install.log.syslog
- 练习2:命令1不正确执行。
[root@localhost ~]# lsfgdfgg && echo no
-bash: lsfgdfgg: command not found
no
4、&&
和||
联合应用
&&
和||
两个执行符可以联合应用,来判断命令是否正确执行。
执行语句:
[root@localhost ~]# ls && echo yes || echo no
如果ls
命令正确执行了,则echo yes
命令就会执行,会输出一个yes
。echo no
命令判断前边echo yes
命令执行了,则echo no
命令则不会执行。
如果ls
命令报错了,则echo yes
命令就不会被执行,echo no
命令需要判断前边的命令是否执行错误,因为echo yes
命令没有执行,被跳过了,所以是判断ls
命令是否报错,而ls
命令报错了,则执行echo no
命令,输出no
。
换句话说,ls
位置的命令,如果正确执行,则输出yes
,如果错误执行,则输出no
。
(所以需要注意的是,需要判断命令执行是否出错,而不是命令是否执行。不执行的命令就被挖掉,不予判断。)
练习:
[root@localhost ~]# ls && echo yes || echo no
anaconda-ks.cfg install.log install.log.syslog
yes
[root@localhost ~]# lsfgjhg && echo yes || echo no
-bash: lsfgjhg: command not found
no
提出一个问题:
我能不能把上边命令中的
&&
和||
的位置互换?答案是不能。
直接看例子,自己推导:
[root@localhost ~]# ls || echo yes && echo no
anaconda-ks.cfg install.log install.log.syslog
no
[root@localhost ~]# lsfgjhg || echo yes && echo no
-bash: lsfgjhg: command not found
yes
no
结论:这是一个固定格式。
『忘了再学』Shell基础 — 7、Bash基本功能(多命令顺序执行)的更多相关文章
- 『忘了再学』Shell基础 — 31、字符处理相关命令
目录 1.排序命令sort (1)sort命令介绍 (2)练习 2.取消重复行命令uniq 3.统计命令wc 1.排序命令sort (1)sort命令介绍 sort命令可针对文本文件的内容,以行为单位 ...
- 『忘了再学』Shell基础 — 26、cut列提取命令
目录 1.cut命令说明 2.cut命令练习 (1)cut命令基本用法 (2)cut命令选取多列 (3)按字符来进行提取 (4)按指定分隔符进行截取数据 3.cut命令分隔符说明 1.cut命令说明 ...
- 『忘了再学』Shell基础 — 17、预定义变量
目录 1.预定义变量$? 2.预定义变量$$和$! 我们之前说过,Shell中的变量不是按照变量值的类型来进行分类的,而是按照Linux系统中定义的变量类别来分类的. 预定义变量就是,事先把变量的名称 ...
- 『忘了再学』Shell基础 — 3、echo命令的介绍与使用
目录 1.echo命令的作用 2.echo命令的基本用法 3.echo命令的-e选项用法 4.echo命令一些特殊用法 (1)输出字符带有字体颜色 (2)输出字符带有背景颜色 在讲Shell脚本之前, ...
- 『忘了再学』Shell基础 — 10、Bash中的特殊符号(二)
提示:本篇文章接上一篇文章,主要说说()小括号和{}大括号的区别与使用. 8.()小括号 ():用于一串命令执行时,()中的命令会在子Shell中运行.(和下面大括号一起说明) 9.{}大括号 {}: ...
- 『忘了再学』Shell基础 — 1、Shell的介绍
目录 1.Shell的由来 2.Shell的两种执行指令方式 3.什么是Shell脚本 4.Shell 是一种脚本语言 1.Shell的由来 我们比较熟悉Windows系统的图形化界面,对于图形界面来 ...
- 『忘了再学』Shell基础 — 4、Bash基本功能(history命令)
目录 1.history历史命令 2.设置命令历史记录的条数 3.清空历史命令 4.历史命令的调用 5.命令与文件的补全 在Linux系统中默认的Shell就是Bourne-AgainShell(简称 ...
- 『忘了再学』Shell基础 — 2、Shell的作用与分类
目录 1.Shell的作用 2.Shell的分类 1.Shell的作用 Shell除了能解释用户输入的命令,将它传递给内核,还可以: 调用其他程序,给其他程序传递数据或参数,并获取程序的处理结果. 在 ...
- 『忘了再学』Shell基础 — 8、管道符介绍
我们之前已经有文章说过管道符了,今天这里再简单总结一下用法. 1.行提取命令grep grep命令的作用,是在指定的文件中,搜索符合条件的字符串. 命令格式: [root@localhost ~ ] ...
- 『忘了再学』Shell基础 — 32、Shell中test测试命令详解
目录 1.test测试命令 (1)test命令介绍 (2)test命令使用方式 (3)示例 2.按照文件类型进行判断 3.按照文件权限进行判断 4.两个文件之间进行比较 5.两个整数之间比较 6.字符 ...
随机推荐
- 【C# 线程】数据槽 LocalDataStoreSlot简称DataSlot
背景 为了确保在线程中声明特定类型的变量,在每个线程中的值都是唯一的,不受到其他线程对该变量读写的影响.也就是俗称的线程本地存储 (TLS),可用于存储对线程和应用程序域唯一的数据. 例如:主线程中声 ...
- 聊聊你对AQS的理解
场景引入 面试官上来就一句,谈谈你对AQS的理解,大家心里可能收到了1W点伤害,AQS是什么,可能连全称都不知道,所以下面让我们聊聊AQS. 以ReentrantLock来介绍一下AQS 在java中 ...
- 哈工大 计算机网络 实验三 IPv4 分组收发实验&IPv4 分组转发实验
计算机网络实验代码与文件可见github:计算机网络实验整理 实验名称 IPv4 分组收发实验&IPv4 分组转发实验 实验目的: (注:实验报告模板中的各项内容仅供参考,可依照实际实验情况进 ...
- matplotlib(终章)
今日内容概要 matplotlib实际案例演示 各种图形的总结 数据清洗(简单) 数据清洗的案例 今日内容详细 matplotlib实际案例演示 # 2.绘制每年电影上映数量曲线图 首先载入模块 im ...
- 【一周聚焦】 联邦学习 arxiv 2.16-3.10
这是一个新开的每周六定期更新栏目,将本周arxiv上新出的联邦学习等感兴趣方向的文章进行总结.与之前精读文章不同,本栏目只会简要总结其研究内容.解决方法与效果.这篇作为栏目首发,可能不止本周内容(毕竟 ...
- laravel7 ORM和laravel模型操作
1.什么是ORM 对象关系映射(Object Relation Maping),这个关系就是关系数据库.因此,顾名思义,ORM的核心是我们通过操作对应来操作关系数据库. ORM的优点: ORM提供了 ...
- composer 自动载入的四种方式
对于第三方包的自动加载,Composer提供了四种方式的支持,分别是 PSR-0和PSR-4的自动加载,生成class-map,和直接包含files的方式. 首先引入autoload.php,在主文件 ...
- LGP3813题解
这道题是我去年11月份的时候看到的,当时写了一个假的做法没过样例,然后就没管了. 结果今天在模拟赛的时候放到了 T1( 我也不知道他为什么是对的,可是他就是过了样例和大样例.jpg 容易发现 \(n\ ...
- ArcMap操作随记(14)
1.ArcMap中模型转为Python脚本 [模型]→右键→[编辑]→[模型]→[导出]→[至Python脚本] 2.一般来说,植被指数NDVI,-1<=NDVI<=1. 3.用lands ...
- 嵌入式linux驱动开发 笔记
@ 目录 首个驱动hellodrv 1.编写源码 2.编译模块 3.加载驱动 首个驱动hellodrv 3.如果下载不到,就自己编写,并编译驱动. 1.编写源码 2.编译模块 1.先写makefile ...