【发布时间】:2014-02-19 10:35:32
【问题描述】:
我正在使用 bash,据我了解,exec 后跟一个命令应该在不创建新进程的情况下替换 shell。例如,
exec echo hello
有打印“hello”然后立即退出的样子,因为echo完成后,shell进程不再返回。
如果我把它作为管道的一部分 - 例如,
exec echo hello | sed 's/hell/heck/'
或
echo hello | exec sed 's/hell/heck/'
我的期望是,同样地,shell 会因为它的进程被替换掉而终止。然而,这并不是现实中发生的事情——上面的命令都打印“hecko”并正常返回到 shell,就好像“exec”这个词不存在一样。这是为什么呢?
【问题讨论】:
标签: bash shell command-line exec pipe