網站首頁 編程語言 正文
簡介
Linux 中可以使用分號";“、雙and號”&&“和雙豎線”||"來連接多個命令。根據場景的不同適當的使用合適的符號。
歷史攻略
python:執行dos命令、Linux命令
命令連接符解析:
僅連接,表示運行先后,無邏輯關系:分號";",如command1 ; command2
邏輯與關系:&&,如command1 && command2
邏輯或關系:&&,如command1 && command2
一、分號
命令之間沒有邏輯關系。分號連接的命令會按照順序從前向后依次執行,但分號兩端的命令之間沒有任何邏輯關系,所有寫出來的命令最終都會被執行,即使分號前面的命令出錯也不影響后面的命令。
二、&&
邏輯與。&&連接的命令會按照順序從前向后執行,但只有當command1正確執行才執行command2,如果command1不正確執行,則不執行command2。在bash中,通過預定義變量“? ”來判斷命令是否正確執行,如果 " ?”來判斷命令是否正確執行,如果"?”來判斷命令是否正確執行,如果"?"的值為0則表示前一條命令正確執行,其他任意值都表示不正確執行。
三、||
邏輯或。||連接的命令會按照順序從前向后執行,但只有當command1不正確執行才執行command2,command1正確執行則不會執行command2。||和&&都是短路符號,符號左右的命令之間具有邏輯關系。
案例剖析
# -*- coding: utf-8 -*-
# time: 2022/10/4 21:47
# file: cmd_1_success.py
# 公眾號: 玩轉測試開發
def run_success_1():
print("cmd_1 start run")
print("cmd_1 do something")
print("cmd_1 end")
if __name__ == '__main__':
run_success_1()
cmd1_fail = python cmd_1_fail.py
# -*- coding: utf-8 -*-
# time: 2022/10/4 21:47
# file: cmd_1_fail.py
# 公眾號: 玩轉測試開發
def run_fail_1():
print("cmd_1 start run")
raise BaseException
print("cmd_1 end")
if __name__ == '__main__':
run_fail_1()
cmd2_success = python cmd_2_success.py
# -*- coding: utf-8 -*-
# time: 2022/10/4 21:49
# file: cmd_2_success.py
def run_success_2():
print("cmd_2 start run")
print("cmd_2 do something")
print("cmd_2 end")
if __name__ == '__main__':
run_success_2()
cmd2_fail = python cmd_2_fail.py
# -*- coding: utf-8 -*-
# time: 2022/10/4 21:51
# file: cmd_2_fail.py
# 公眾號: 玩轉測試開發
def run_fail_2():
print("cmd_2 start run")
raise BaseException
print("cmd_2 end")
if __name__ == '__main__':
run_fail_2()
即:存在4種基本情況
cmd_1_success、cmd_2_success
cmd_1_fail、cmd_2_success
cmd_1_success、cmd_2_fail
cmd_1_fail、cmd_2_fail
test.sh
#bin/bash
python cmd_1_success; python cmd_2_success
python cmd_1_success && python cmd_2_success
python cmd_1_success || python cmd_2_success
演示分號的四類基礎情況:
# 第一種情況:cmd_1_success; cmd_2_success
cmd_1 start run
cmd_1 do something
cmd_1 end
cmd_2 start run
cmd_2 do something
cmd_2 end
# 第二種情況:cmd_1_fail; cmd_2_success
cmd_1 start run
Traceback (most recent call last):
File "cmd_1_fail.py", line 14, in <module>
run_fail_1()
File "cmd_1_fail.py", line 9, in run_fail_1
raise BaseException
BaseException
cmd_2 start run
cmd_2 do something
cmd_2 end
# 第三種情況:cmd_1_success; cmd_2_fail
cmd_1 start run
cmd_1 do something
cmd_1 end
cmd_2 start run
Traceback (most recent call last):
File "cmd_2_fail.py", line 14, in <module>
run_fail_2()
File "cmd_2_fail.py", line 9, in run_fail_2
raise BaseException
BaseException
# 第四種情況:cmd_1_fail; cmd_2_fail
cmd_1 start run
Traceback (most recent call last):
File "cmd_1_fail.py", line 14, in <module>
run_fail_1()
File "cmd_1_fail.py", line 9, in run_fail_1
raise BaseException
BaseException
cmd_2 start run
Traceback (most recent call last):
File "cmd_2_fail.py", line 14, in <module>
run_fail_2()
File "cmd_2_fail.py", line 9, in run_fail_2
raise BaseException
BaseException
演示 && 的四類基本情況:
# 第一種情況:cmd_1_success && cmd_2_success
cmd_1 start run
cmd_1 do something
cmd_1 end
cmd_2 start run
cmd_2 do something
cmd_2 end
# 第二種情況:cmd_1_fail && cmd_2_success
cmd_1 start run
Traceback (most recent call last):
File "cmd_1_fail.py", line 14, in <module>
run_fail_1()
File "cmd_1_fail.py", line 9, in run_fail_1
raise BaseException
BaseException
# 第三種情況:cmd_1_success && cmd_2_fail
cmd_1 start run
cmd_1 do something
cmd_1 end
cmd_2 start run
Traceback (most recent call last):
File "cmd_2_fail.py", line 14, in <module>
run_fail_2()
File "cmd_2_fail.py", line 9, in run_fail_2
raise BaseException
BaseException
# 第四種情況:cmd_1_fail && cmd_2_fail
cmd_1 start run
Traceback (most recent call last):
File "cmd_1_fail.py", line 14, in <module>
run_fail_1()
File "cmd_1_fail.py", line 9, in run_fail_1
raise BaseException
BaseException
演示 || 的四類基本情況:
# 第一種情況:cmd_1_success || cmd_2_success
cmd_1 start run
cmd_1 do something
cmd_1 end
# 第二種情況:cmd_1_fail || cmd_2_success
cmd_1 start run
Traceback (most recent call last):
File "cmd_1_fail.py", line 14, in <module>
run_fail_1()
File "cmd_1_fail.py", line 9, in run_fail_1
raise BaseException
BaseException
cmd_2 start run
cmd_2 do something
cmd_2 end
# 第三種情況:cmd_1_success || cmd_2_fail
cmd_1 start run
cmd_1 do something
cmd_1 end
# 第四種情況:cmd_1_fail || cmd_2_fail
cmd_1 start run
Traceback (most recent call last):
File "cmd_1_fail.py", line 14, in <module>
run_fail_1()
File "cmd_1_fail.py", line 9, in run_fail_1
raise BaseException
BaseException
cmd_2 start run
Traceback (most recent call last):
File "cmd_2_fail.py", line 14, in <module>
run_fail_2()
File "cmd_2_fail.py", line 9, in run_fail_2
raise BaseException
BaseException
即:分號前后運行無邏輯關系;&&后面的命令需要前面的命令正常執行;
||后面的命令需要前面的命令運行失敗才執行。
原文鏈接:https://blog.csdn.net/hzblucky1314/article/details/127334355
相關推薦
- 2022-08-17 C語言超全面講解字符串函數_C 語言
- 2022-06-09 FreeRTOS實時操作系統的多優先級實現_操作系統
- 2022-08-13 局域網中共享文件夾
- 2022-12-27 Python中的類的定義和對象的創建方法_python
- 2022-05-01 python保存圖片的四個常用方法_python
- 2022-05-27 時序數據庫TDengine寫入查詢的問題分析_數據庫其它
- 2022-12-01 docker-compose簡單使用方法詳解_docker
- 2022-05-18 Golang?并發下的問題定位及解決方案_Golang
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支