Shell中的管道

管道

管道,从一头进去,从另一头出来。

在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成功执行后才会执行command2command1 || command2command1没有成功执行时执行command2

比如下面的命令,会首先执行sudo updatedb,如果执行失败,则会执行echo "update database error."

$ sudo updatedb || echo "update database error."

你可能感兴趣的:(Shell中的管道)