调用管道内的函数

调用管道内的函数

我有一个脚本多次使用很长的管道。每个管道的中间是相同的命令链。只有开头和结尾在使用时会延迟。

Different-command-1 |
 command A |
 command B |
 command C |
 diff-cmd-2

有没有办法将此命令作为管道内的函数调用?喜欢:

same-commands() {
    command A |
    command B |
    command C 
}

Different-command-1 |
 same-commands |
 diff-cmd-2

Different-command-3 |
 same-commands |
 diff-cmd-4

就我而言,这会在我的脚本中节省很多行,但我不太清楚这是如何工作的。

答案1

函数中的命令使用与函数本身相同的 stdin 和 stdout 运行,因此我们可以将管道放入函数中,然后将函数粘贴到另一个管道中,就像任何其他命令一样:

func() { 
    tr a x | 
    tr b x
}
echo abc | func | tr c x

这打印xxx.

相关内容