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