linux脚本 逻辑运算,Linux-shell-逻辑运算和;
7.Shell
7.5.2命令執行的判斷依據: ; , &&, ||
1.cmd ; cmd (不考慮指令相關性的連續指令下達)
一般用于多條命令之間沒有直接需求聯系,最多只是有一個執行先后的關系。
[root@localhost tmp]# sync; shutdown -h now
2.與&&或 ||指令下達情況說明
cmd1 && cmd21.若 cmd1 執行完畢且正確執行($?=0),則開始執行 cmd2。
2.若 cmd1 執行完畢且為錯誤 ($?≠0),則 cmd2 不執行。
cmd1 || cmd21.若 cmd1 執行完畢且正確執行($?=0),則 cmd2 不執行。
2.若 cmd1 執行完畢且為錯誤 ($?≠0),則開始執行 cmd2。
[root@localhost tmp]# ls /tmp/abc && touch /tmp/abc/hehe
ls: cannot access /tmp/abc: No such file or directory
[root@localhost tmp]# ls
aaa? stderr? stdout
#測試 /tmp/abc是否存在,若存在則用 touch 建立 /tmp/abc/hehe
[root@localhost tmp]# ls /tmp/abc || mkdir /tmp/abc
ls: cannot access /tmp/abc: No such file or directory
[root@localhost tmp]# ls
aaa? abc? stderr? stdout
#測試 /tmp/abc是否存在,若不存在則予以建立,若存在就不作任何事情
[root@localhost tmp]# ls /tmp/abc || mkdir /tmp/abc && touch /tmp/abc/hehe
[root@localhost tmp]# ls abc/
hehe
#我不清楚 /tmp/abc是否存在,但就是要建立 /tmp/abc/hehe檔案
(1)命令返回值#?
$? 是一個特殊變量,用來獲取上一個命令的退出狀態,或者上一個函數的返回值。所謂退出狀態,就是上一個命令執行后的返回結果。退出狀態是一個數字,一般情況下,大部分命令執行成功會返回 0,失敗返回 非0。
[root@localhost tmp]# ls abc/
hehe
[root@localhost tmp]# echo $?
0
[root@localhost tmp]# ls aaaaa
ls: cannot access aaaaa: No such file or directory
[root@localhost tmp]# echo $?
2
(2)&&與||的執行過程
command1 && command2
&&左邊的command1執行成功(返回0表示成功)后,&&右邊的command2才能被執行。
command1 || command2
如果||左邊的command1執行失敗(返回非0表示失敗),就執行&&右邊的command2,否則command2不會被執行。
#分析ls /tmp/abc || mkdir /tmp/abc && touch /tmp/abc/hehe的執行過程如下:
總結
以上是生活随笔為你收集整理的linux脚本 逻辑运算,Linux-shell-逻辑运算和;的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为P50 Pocket展望:首次采用副
- 下一篇: linux下安装服务,linux下的软件