刨根问底:bash shell中管道和其他命令分隔符的优先级

一般在bash中,用“|”作为管道,即pipeline,还可以用“;”之类的分隔符连接多个命令。那么下面这个命令的输出是什么呢?

date; who |wc

根据https://www.gnu.org/software/bash/manual/bashref.html里的说明,管道是'|'或者'|&'分隔的命令

A pipeline is a sequence of one or more commands separated by one of the control operators ‘|’ or ‘|&’

而list是‘;’, ‘&’, ‘&&’或者 ‘||’分隔的管道

A list is a sequence of one or more pipelines separated by one of the operators ‘;’, ‘&’, ‘&&’, or ‘||’, and optionally terminated by one of ‘;’, ‘&’, or a newline.Of these list operators, ‘&&’ and ‘||’ have equal precedence, followed by ‘;’ and ‘&’, which have equal precedence.

因此上面的命令中,"who | wc"作为一个管道,再和前面的"date"结合

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容