登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
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常用命令查询工具(好记性不如烂笔头)
数字电路模拟程序&课堂测验Blog
《ESP32-S3使用指南—IDF版 V1.6》第五十五章 基于MQTT协议连接阿里云服务器
pgAdmin 后台命令执行漏洞复现及分析(CVE-2025-2945)
JS逆向-反调试分析&debuger执行&条件断点&替换文件执行
JS逆向-混淆加密-识别&还原-Eval&JSFuck&JSJiaMi案例
FFmpeg 内存输入&输出
AgentScope深入分析-LLM&MCP
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
一只菜鸟学深度学习的日记:填充 & 步幅 & 下采样
1
205
喙审
2025-12-10
安全
【低代码】低代码平台协同&敏捷场景下的并行开发解决方案探索
0
499
杓疠?
2025-12-11
安全
Linux常用命令查询工具(好记性不如烂笔头)
1
606
闾丘婉奕
2025-12-12
安全
数字电路模拟程序&课堂测验Blog
0
226
吕梓美
2025-12-15
安全
《ESP32-S3使用指南—IDF版 V1.6》第五十五章 基于MQTT协议连接阿里云服务器
0
329
呵桢
2025-12-16
安全
pgAdmin 后台命令执行漏洞复现及分析(CVE-2025-2945)
0
242
赘暨逢
2025-12-17
业界
JS逆向-反调试分析&debuger执行&条件断点&替换文件执行
0
736
殳世英
2025-12-18
业界
JS逆向-混淆加密-识别&还原-Eval&JSFuck&JSJiaMi案例
0
457
纪晴丽
2025-12-19
安全
FFmpeg 内存输入&输出
0
15
劳欣笑
2025-12-21
业界
AgentScope深入分析-LLM&MCP
0
310
济曝喊
2025-12-21
回复
(5)
骆贵
2025-10-27 00:46:50
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
不错,里面软件多更新就更好了
钱匾
2025-10-27 23:57:43
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
新版吗?好像是停更了吧。
馏栩梓
2025-12-1 20:48:25
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
鼓励转贴优秀软件安全工具和文档!
卿搞笔
2025-12-2 05:51:18
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
前排留名,哈哈哈
颛孙中
5 天前
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
很好很强大 我过来先占个楼 待编辑
酒跚骼
4 天前
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
谢谢分享,试用一下
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
啪炽
4 天前
关注
0
粉丝关注
15
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
3934307807
991124
anyue1937
9994892
kk14977
6845358
4
xiangqian
638210
5
韶又彤
9997
6
宋子
9981
7
闰咄阅
9993
8
刎唇
9993
9
俞瑛瑶
9998
10
蓬森莉
9950
查看更多
今日好文热榜
306
AgentScope深入分析-LLM&MCP
595
《痞子衡嵌入式半月刊》 第 120 期
623
go项目使用go build 与 MakeFile 构建项目
763
监控指标与容量预警——延迟、命中率、慢查
673
2026 年别墅防水服务商 TOP5 推荐:高端住
963
MAUI库推荐二:MPowerKit
962
.NET10 New feature 新增功能介绍-JIT编译
404
报考陪诊师选守嘉陪诊的理由
272
C#AI系列(7):从零开始LLM之Tokenizer实现
284
C#AI系列(7):从零开始LLM之Tokenizer实现
826
Pytest 测试用例自动生成:接口自动化进阶
848
一天一个Python库:NumPy - 科学计算的基石
15
FFmpeg 内存输入&输出
745
一文读懂RAG架构如何助力AI
500
一文读懂RAG架构如何助力AI
549
ROS2之TF介绍
400
SW 随笔 001 — InlineArray 带你飞(Since
693
当遇见 CatchAdmin V5-模块化设计重新定义
495
【有手就行】SWIFT:花20分钟把大模型的名
562
论文速读记录 | 2025.12(2)