如何解释这个命令链?

如何解释这个命令链?
[root@localhost /]# ( ./address_to_char;cat) | ./overflow

这里的工作怎么样 ( ./address_to_char;cat)

和 有啥不同./address_to_char|./overflow

答案1

./address_to_char和的输出cat都通过管道传输,./overflow成为单一、连续的数据流。

  1. 首先,./address_to_char运行,它的输出被重定向到./overflow的输入。

  2. ./address_to_char退出时,启动,并且它的输出以相同的方式cat附加到仍在运行的进程。./overflow

    由于cat运行时没有指定文件,它从标准输入(在本例中为您的键盘)读取。

答案2

嗯,括号打开一个子 shell,分号将按顺序运行命令。

因此在这种情况下,您正在./address_to_charcatshell 中运行。

相关内容