Linux中豎線'|' 、雙豎線‘||’、&和&&全面解析

對於初學者來說這幾個意思可能只知道其中幾個的意思,下面我們來看一下。

1、豎線‘|’ ,在linux中是作爲管道符的,將‘|’前面命令的輸出作爲'|'後面的輸入。

[18066609@root~]$ cat /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

games:x:12:100:games:/usr/games:/sbin/nologin

gopher:x:13:30:gopher:/var/gopher:/sbin/nologin

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

nobody:x:99:99:Nobody:/:/sbin/nologin

加上 | head -n1 之後

[18066609@root~]$ cat /etc/passwd | head -n1

root:x:0:0:root:/root:/bin/bash

 

2、雙豎線‘||’,用雙豎線‘||’分割的多條命令,執行的時候遵循如下規則,如果前一條命令爲真,則後面的命令不會執行,如果前一條命令爲假,則繼續執行後面的命令。

舉例輸入1小於2雙豎線輸出b,前面爲真,後面不執行則沒有輸出b,輸入1大於2雙豎線echo b,前面爲假則輸出b。

[18066609@root~]$ [[ 1 -lt 2 ]]||echo b

[18066609@root~]$ [[ 1 -gt 2 ]]||echo b

再舉一個實用性的例子,判斷文件是否存在,不存在則創建,存在就什麼都不執行。

[18066609@root~]$ ls

[18066609@root~]$ [[ -f 1.txt ]] || touch 1.txt

[18066609@root~]$ ls

1.txt

[18066609@root~]$ [[ -f 1.txt ]] || touch 2.txt

[18066609@root~]$ ls

1.txt

 

3、&同時執行多條命令,不管命令是否執行成功

[18066609@root~]$ [[ 1 -gt 2 ]] & echo b

[1] 32303

b

[18066609@root~]$

[1]+ Exit 1 [[ 1 -gt 2 ]]

 

4、&& 可同時執行多條命令,當碰到執行錯誤的命令時,將不再執行後面的命令。如果一直沒有錯誤的,則執行完畢。

[18066609@root~]$ [[ 1 -gt 2 ]] && echo b

[18066609@root~]$

[18066609@root~]$ [[ 1 -lt 2 ]] && echo b

b

 

————————————————————————————

參考來源:https://www.cnblogs.com/jpfss/p/10077390.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章