登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
安全
›
Bash中; && ||命令连接符不是逻辑连接符、多个命令的执 ...
Bash中; && ||命令连接符不是逻辑连接符、多个命令的执行顺序
[ 复制链接 ]
啪炽
2025-6-11 14:01:11
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
Bash中; && ||命令连接符不是逻辑连接符、多个命令的执行顺序
在Shell的Bash语言中,; && ||三个符号用于分隔命令,根据前一个命令的执行状态,按顺序执行后面的命令。它们形似逻辑运算符,但其实不是
逻辑运算符
,而是
命令连接符
。
基础知识
【重要】每个命令执行后都有进程退出状态码,下面简称退出状态码(Exit Status)。为0则表示命令成功执行。非0则表示命令执行失败。
具体是多少,由该命令对退出状态码指定。
echo命令没有特殊情况,退出状态码通常是0(因为几乎总是成功执行)。
;(
分号
)用于分隔多个命令,按顺序执行这些命令,无论前一个命令执行成功与否。如在命令行中敲入echo "Hello"; echo "World",按下回车,会输出Hello,同时换行输出World。
&&(
AND连接符
)分隔多个命令,只有前一个命令
退出状态码为零
(
即执行成功
),就会执行下一条命令。
||(
OR连接符
)分隔多个命令,只有前一个命令
退出状态码非零
(
即执行失败
),才会执行下一条命令。
注意:
&&和||作用的范围是下一条命令,不是整行命令
;如果有一行命令序列中有多条命令,如果下一条命令不能执行,不代表下下条命令不能执行。
如果退出状态码非零(即执行失败),在命令行中会打印错误信息,但并不意味着整行命令停止运行。
没有优先级
在Bash语言中,作为
命令连接符
,
; && ||并没有优先级
。
具体到执行上,
如果没有括号,永远是从左往右执行
。
但是&& ||在退出状态码上,&&与||有逻辑连接符的特征:A&&B时,只有A和B退出状态码都为0,整体的退出状态码才是0。A||B时,如果A和B的退出状态码有一个是0,整体的退出状态码就是0。
学过Java的同学会有认识:(2>5 && 1235时,就可以忽略后面两条直接判定false了;在shell命令中,(A&&B&&C)也一样,只要A出错了,整体的退出状态码就是非0。(也可类比(A||B||C))
命令序列的执行顺序
在判断某一行由许多命令由命令连接符组成的命令序列的执行顺序时,我们需要如下操作:
(请结合例子动笔写下关键的推理过程)
有括号优先处理括号。
然后从左往右看,
每次执行命令后,留意退出状态码与接下类的命令连接符
。
满足以下条件之一的,继续执行下面的命令,返回第2条:
命令连接符是;
命令连接符是&&且退出状态码为0
命令连接符是||且退出状态码为非0
满足以下条件之一的,执行第4条:
命令连接符是&&且退出状态码为非0
命令连接符是||且退出状态码为0
将命令连接符连起来的两条命令外围扩上一层小括号,例如(A ; B)/(A && B)/(A || B),判断小括号内的退出状态码
:
如果最终B不执行,返回A的退出状态码
如果最终B执行了,返回B的退出状态码
说人话:B不执行,只要A失败了,整条命令就失败了;B执行了,管他A怎么鸟样,只要B失败了,整条命令就失败了。其余情况整条命令都是成功的。
然后返回第2条,直到所有的命令都执行完毕。
例如:下面的例子中,很多人会误以为不会输出任何东西,但实际上会输出bb。
true || echo aa && echo bb
复制代码
分析:
true不会执行任何操作,返回退出状态码0。后方命令连接符是||,所以echo aa不会执行。
然后分析(true || echo aa)&& echo bb,因为echo aa不执行,所以返回true这条命令的退出状态码。因为退出状态码为0,所以(true || echo aa)整条命令的退出状态码为0。
然后分析&& echo bb,因为&&且退出状态码为0,所以执行echo bb,打印bb,退出状态码还是0。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
amp
命令
连接
Bash
不是
相关帖子
Linux命令自检
Flask数据库操作三步曲:连接、建模与CRUD实战
DBLens 连接数怎么限制?免费 3 个,订阅随便加
一只菜鸟学深度学习的日记:填充 & 步幅 & 下采样
【低代码】低代码平台协同&敏捷场景下的并行开发解决方案探索
Linux常用命令查询工具(好记性不如烂笔头)
数字电路模拟程序&课堂测验Blog
《ESP32-S3使用指南—IDF版 V1.6》第五十五章 基于MQTT协议连接阿里云服务器
pgAdmin 后台命令执行漏洞复现及分析(CVE-2025-2945)
JS逆向-反调试分析&debuger执行&条件断点&替换文件执行
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
安全
Linux命令自检
3
383
椎蕊
2025-12-07
安全
Flask数据库操作三步曲:连接、建模与CRUD实战
1
732
判涔
2025-12-09
业界
DBLens 连接数怎么限制?免费 3 个,订阅随便加
3
620
秤陷曲
2025-12-09
业界
一只菜鸟学深度学习的日记:填充 & 步幅 & 下采样
1
199
喙审
2025-12-10
安全
【低代码】低代码平台协同&敏捷场景下的并行开发解决方案探索
0
477
杓疠?
2025-12-11
安全
Linux常用命令查询工具(好记性不如烂笔头)
1
602
闾丘婉奕
2025-12-12
安全
数字电路模拟程序&课堂测验Blog
0
222
吕梓美
2025-12-15
安全
《ESP32-S3使用指南—IDF版 V1.6》第五十五章 基于MQTT协议连接阿里云服务器
0
326
呵桢
2025-12-16
安全
pgAdmin 后台命令执行漏洞复现及分析(CVE-2025-2945)
0
236
赘暨逢
2025-12-17
业界
JS逆向-反调试分析&debuger执行&条件断点&替换文件执行
0
716
殳世英
2025-12-18
回复
(5)
骆贵
2025-10-27 00:46:50
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
不错,里面软件多更新就更好了
钱匾
2025-10-27 23:57:43
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
新版吗?好像是停更了吧。
馏栩梓
2025-12-1 20:48:25
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
鼓励转贴优秀软件安全工具和文档!
卿搞笔
2025-12-2 05:51:18
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
前排留名,哈哈哈
颛孙中
前天 13:31
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
很好很强大 我过来先占个楼 待编辑
酒跚骼
昨天 04:47
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
谢谢分享,试用一下
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
啪炽
昨天 04:47
关注
0
粉丝关注
15
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
3934307807
991124
anyue1937
9994893
kk14977
6845358
4
xiangqian
638210
5
韶又彤
9997
6
宋子
9982
7
闰咄阅
9993
8
刎唇
9993
9
俞瑛瑶
9998
10
蓬森莉
9951
查看更多
今日好文热榜
716
JS逆向-反调试分析&debuger执行&条件断点&
375
v0 高效 Prompt 全面教程:常用 prompt 串
269
SeaTunnel(2.3.12)和Datax(3.0)对比
999
《ESP32-S3使用指南—IDF版 V1.6》第五十六
344
数字人动画云端渲染方案
680
【强化学习笔记】从数学推导到电机控制:深
880
Docker安装Postgresql
588
使用Python免费合并PDF文件
433
【节点】[RGBtoLuminance节点]原理解析与实
137
还在痛苦前端的拖拽排序吗?SortableJS 轻
724
OpenCVSharp:HOG行人检测
246
剑指offer-52、正则表达式匹配
552
Python环境管理利器Conda:从入门到避坑实
69
MAF快速入门(7)工作流的状态共享
798
Python包管理告别龟速下载:uv工具国内镜像
752
深入理解Linux IPIP隧道:原理、配置与实战
196
HoughLinesP 霍夫变换 C++ opencv 内存报
734
RabbitMQ发布订阅模式同一消费者多个实例如
801
AICube数据集不合法清洗解决方法
603
Iceberg 在hadoop大数据数据湖领域这么火