如何将一个命令的输出(例如“echo Hi”)重定向到另一个返回路径的命令的输出(例如“tty”(返回 /dev/pts/1))?

如何将一个命令的输出(例如“echo Hi”)重定向到另一个返回路径的命令的输出(例如“tty”(返回 /dev/pts/1))?

如何将一个命令的输出(例如)重定向echo Hi到另一个返回路径的命令的输出(例如tty(返回,/dev/pts/1),而不必将输出复制粘贴到这样的命令:

echo Hi > /dev/pts/1 | 

答案1

关键词是命令替换. 你本质上想要一个重定向,就像

$ echo Hi > PROGRAM

但是 PROGRAM 被其自己的输出替换。这就是$()语法的作用,在你的例子中

$ echo Hi > $(tty)

首先执行tty,然后捕获输出(/dev/pts/1在本例中),并$(tty)在执行该行的其余部分之前用它替换,即将回声重定向到那里。

你可以找到更多信息,包括一些可能在其他情况下相关的技术细节,这里并在Linux 文档项目。前者涵盖了要点,后者细节更丰富,并有示例,但恕我直言,阅读起来有点困难。请注意,Linux 文档项目使用老式的反引号语法。您应该坚持使用$(PROGRAM),因为它更容易嵌套。

相关内容