對於初學者來說這幾個意思可能只知道其中幾個的意思,下面我們來看一下。
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
————————————————————————————