后台进程管道输入

阿萨·库乔维奇(Asain Kujovic)

如果我想在屏幕上显示“ aaa”:

(1)$: echo aaa | cat                 ... works OK
(2)$: echo aaa | ( cat )             ... works OK
(3)$: echo aaa | ( cat & )           ... NOT working
(4)$: ( echo aaa & ) | cat           ... works OK 
(5)$: echo aaa | ( cat <&0 & )       ... works ok in BASH (but not in SH)
(6)$: echo aaa | ( cat <&3 & ) 3<&0  ... works ok in BASH and SH

(3)和(4)->分离过程的结果仍然连接了可以控制,使用,重定向的输出,但是没有输入!

我的问题是:有人了解第(5)行的原因和方式吗?

...“ <&0”是“ 0 <&0”的缩写,为什么将0重定向到0是解决方案,并且在分离过程的输入之后真正发生了什么。Subshel​​l并不是问题,使用大括号{...}代替(...)可以提供相同的结果。

...和问题2:是否有比“第6行”更好的“向分离过程提供输入”的解决方案。

斯蒂芬·查泽拉斯(Stephane Chazelas)

是的,根据POSIX的要求,在后台启动的命令&的标准输入从重定向/dev/null

的确

{ cmd <&3 3<&- & } 3<&0

是解决它的最明显的方法。

目前尚不清楚为什么要在后台运行部分管道。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何杀死管道后台进程?

来自分类Dev

如何杀死管道后台进程?

来自分类Dev

命名管道和后台进程

来自分类Dev

子进程管道终端输入?

来自分类Dev

Windows 10:进程 1 输出用作进程 2 输入:管道

来自分类Dev

管道命令输出到运行/后台命令的输入

来自分类Dev

用户输入后将perl进程切换到后台

来自分类Dev

使用输入/输出重定向在后台运行进程

来自分类Dev

从文件中获取标准输入来控制后台Java进程

来自分类Dev

Shell脚本:将输入发送到后台进程

来自分类Dev

是否将后台进程的stdout输出作为前台进程的stdin输入?

来自分类Dev

如何通过管道将命令传递给在后台运行的进程?

来自分类Dev

一次将管道输入另一进程的管道

来自分类Dev

将输入\输出管道从父进程重定向到cmd子进程C / C ++ WinApi

来自分类Dev

Spring MVC后台进程

来自分类Dev

跟踪后台进程?

来自分类Dev

后台的Python子进程

来自分类Dev

等待后台进程

来自分类Dev

终止每个后台进程

来自分类Dev

Java的后台进程

来自分类Dev

什么是后台进程?

来自分类Dev

什么是后台进程?

来自分类Dev

如何终止后台进程?

来自分类Dev

后台进程未运行?

来自分类Dev

Android和后台进程

来自分类Dev

终止每个后台进程

来自分类Dev

Android线程,后台进程

来自分类Dev

PHP和后台进程

来自分类Dev

将进程放到后台