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."
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容