管道
管道,从一头进去,从另一头出来。
在Shell中,管道将一个程序的标准输出作为另一个程序的标准输入,就像用一根管子将一个程序的输出连接到另一个程序的输入一样。
管道的符号是|
,下面的程序将cat
的标准输出作为less
的标准输入,以实现翻页的功能:
$ cat source.list.bk | less
tee
有时候我们想要同时将程序的输出显示在屏幕上(或进入管道)和保存到文件中,这个时候可以使用tee
。
tee
程序的输出和它的输入一样,但是会将输入内容额外的保存到文件中:
$ cat hello.txt | tee hello.txt.bk
上面的例子中,tee
程序将cat
程序的输出显示在屏幕上,并且在hello.txt.bk
文件中保留了副本。需要注意的是,如果tee
命令中指定的文件已经存在,那么它将会被覆盖,使用-a
选项在文件末尾追加内容(而不是覆盖):
$ cat hello.txt | tee -a hello.txt.bk
条件执行
command1 && command2
只有在command1
成功执行后才会执行command2
;command1 || command2
在command1
没有成功执行时执行command2
。
比如下面的命令,会首先执行sudo updatedb
,如果执行失败,则会执行echo "update database error."
:
$ sudo updatedb || echo "update database error."
网友评论