亚洲熟女综合色一区二区三区,亚洲精品中文字幕无码蜜桃,亚洲va欧美va日韩va成人网,亚洲av无码国产一区二区三区,亚洲精品无码久久久久久久

Bash的&&,||邏輯運(yùn)算

Bash的&&,||邏輯運(yùn)算

bash里的true和false并不是我們通常所認(rèn)為的0和1。 true和false是shell的內(nèi)置命令,返回邏輯值。

$?是一個(gè)特殊的變量,存放有上一個(gè)程序的結(jié)束狀態(tài)。 在shell里面,把0作為程序是否成功結(jié)束的標(biāo)志。

例如:

$ true
$ echo
$?
0
$ false
$ echo
$?
1

有時(shí)候,下一條命令依賴前一條命令是否執(zhí)行成功。
如:在成功地執(zhí)行一條命令之后再執(zhí)行另一條命令,或者在一條命令執(zhí)行失敗后再執(zhí)行另一條命令等。
shell 提供了 && 和 || 來實(shí)現(xiàn)命令執(zhí)行控制的功能,shell 將根據(jù) && 或 || 前面命令的返回值來控制其后面命令的執(zhí)行。

cmd1 && cmd2

  1. 若 cmd1 運(yùn)行完畢且正確運(yùn)行($?=0),則開始運(yùn)行 cmd2。

  2. 若 cmd1 運(yùn)行完畢且為錯(cuò)誤 ($?≠0),則 cmd2 不運(yùn)行。

cmd1 || cmd2

  1. 若 cmd1 運(yùn)行完畢且正確運(yùn)行($?=0),則 cmd2 不運(yùn)行。

  2. 若 cmd1 運(yùn)行完畢且為錯(cuò)誤 ($?≠0),則開始運(yùn)行 cmd2。

其實(shí)就是課堂上說的短路運(yùn)算:
與運(yùn)算,第一個(gè)為0,結(jié)果必定為0;第一個(gè)為1,第二個(gè)必須要參與運(yùn)算; 或運(yùn)算,第一個(gè)為1,結(jié)果必定為1;第一個(gè)為0,第二個(gè)必須要參與運(yùn)算

驗(yàn)證回傳值:

#!/bin/bash
true&&true; echo $?
true&&false; echo $?
false&&true; echo $?
false&&false; echo $?
true||true; echo $?
true||false; echo $?
false||true; echo $?
false||false; echo $?

[blog@localhost ~]$ sh test.sh

0
1
1
1
0
0
0
1

常用的條件判斷式

command1 && command2 || command3

如果command1成功運(yùn)行,回傳$0,運(yùn)行command2,||得到回傳值$0,command3不會(huì)運(yùn)行;
如果command1運(yùn)行失敗,command1 && command2 回傳$1,||得到回傳值$1,command3運(yùn)行成功。

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國(guó)內(nèi)好評(píng)如潮的Linux云計(jì)算運(yùn)維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開發(fā)專業(yè)人才培訓(xùn)機(jī)構(gòu)!