对于初学者来说这几个意思可能只知道其中几个的意思,下面我们来看一下。
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
-
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