Bash
在管道中呼叫函式
我有一個腳本使用相當長的管道很多次。每個管道的中間是相同的命令鏈。只有開頭和結尾會一直延遲使用。
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
在我的情況下,這會在我的腳本中節省很多行,但我無法弄清楚它是如何工作的。
函式中的命令使用與函式本身相同的 stdin 和 stdout 執行,因此我們可以將管道放入函式中,然後將函式粘貼到另一個管道中,就像任何其他命令一樣:
func() { tr a x | tr b x } echo abc | func | tr c x
這列印
xxx
。