我使用括号为下一个命令创建输入数据流(来自多个来源)。例如:
(date; pwd; cat file1.txt) | less
这很方便而且效果很好。但这是一种可接受的/标准的方法吗?这种生成输入流的一般规则是什么?我找不到任何参考以获取更多详细信息。
我使用括号为下一个命令创建输入数据流(来自多个来源)。例如:
(date; pwd; cat file1.txt) | less
这很方便而且效果很好。但这是一种可接受的/标准的方法吗?这种生成输入流的一般规则是什么?我找不到任何参考以获取更多详细信息。
好吧,“可接受”通常是审稿人眼中的东西,基于意见的问题不太适合 SE,但我想我们可以考虑其他选择,让每个人都选择。
以某种方式对命令进行分组是使其正常工作所必须做的事情,并且使用
(...)
那里是一个简单的解决方案。另一种单线选项是这在其他方面是相同的,但不涉及子 shell(除了你从管道中获取的任何东西,所以它甚至可能没有什么区别),并且语法更丑陋,强制间距和最后的分号。请参阅 Bash 的这两个手册:3.2.5.3 Grouping Commands。
当然,您可以将命令组隐藏在外部脚本中,但是拥有一个额外的文件并不方便。将命令放在一个函数中可能是一个很好的中间立场。创建一个像这样的函数
somestuff | less
如果在上下文中感觉更好,然后使用。