我正在努力理解命令重定向/重用......
我知道有组合输出的<(...) <(...)
方法和$( ... && ... )
技术。但我并不完全理解有什么区别(我意识到(...)
转储你在一个新的 shell 中,导致你可能会跳转 dirs 并丢失你没有导出的任何变量,但我不确定它如何影响一般重定向方案),在浏览了以下示例和说明后,我仍然对如何进行一对多重定向感到困惑:
Advanced Bash Scripting Guide 1
Advanced Bash Scripting Guide 2
我自己尝试使用它的尝试大多导致“模糊重定向”错误。
例如,假设我想做一个由下面的伪代码给出的单行
CMD 1 && CMD 2 && CMD 3 --> (1)
CMD 4 (1) --> (2)
CMD 5 (1) --> CMD 6 --> (3)
CMD 7 (2) && CMD 8 (3) --> (4)
CMD 9 (2) --> (5)
CMD 10 (2) (3) -->(6)
VAR= echo (4) && echo (5) && echo (6)
或作为流程图
CMD 1 +CMD 2 && CMD 3
|\
| ---> CMD 5 ------> CMD 6-----\
V / V
CMD 4 ----------------u--------> CMD 10
| \ V /
| -------->CMD 7 + CMD 8 /
V | /
CMD 9 | /
\ | /
\ V /
--------> VAR <----------
其中输出被指定为-->
;在另一个操作中重用的存储由-->(#)
; 和组合操作由 给出&&
。
我目前不知道如何在没有冗余代码的情况下在一行中执行此操作。
我想真正掌握命令重定向,这样我就可以制作一些强大的单行代码。
希望这足够清楚......如果您需要它们,我可以为命令提供概念证明示例,但伪代码应该会给您这个想法。