小编rha*_*der的帖子

Bash双进程替换提供了错误的文件描述符

当我尝试在bash函数中引用两个进程替换管道时,只有引用的第一个管道工作.第二个给出一个"错误的文件描述符"错误,如下所示:

$ foo(){
> cat "$1"
> cat "$2"
> }
$ foo <(echo hi) <(echo bye)
hi
cat: /dev/fd/62: Bad file descriptor
$ 
Run Code Online (Sandbox Code Playgroud)

看来第二个管道在被引用时被丢弃,但是a)我似乎无法在任何文档中确认这种行为,并且b)我希望它不会.=)

关于我做错了什么的任何想法?FWIW我这样做是为了使包装器使用Mac OS X的FileMerge图形差异工具而不是命令行1,它已经很高兴从命令行使用多个管道.

-抢

bash pipe process file-descriptor substitution

8
推荐指数
2
解决办法
1518
查看次数

如何通过响应式扩展将一个事件拆分为多个事件?

如何在响应式扩展流中处理单个事件并将其拆分为同一个流中的多个事件?

我有一个序列来检索json数据,这是一个顶层的数组.在json数据被解码的那一点上,我想获取该数组中的每个元素并继续沿着流传递这些元素.

这是一个我希望存在的虚构函数的例子(但名字较短!).它是在Python中,但我认为它很简单,它应该对其他Rx程序员清晰.

# Smallest possible example
from rx import Observable
import requests
stream = Observable.just('https://api.github.com/users')
stream.map(requests.get) \
      .map(lambda raw: raw.json()) \
      .SPLIT_ARRAY_INTO_SEPARATE_EVENTS() \
      .subscribe(print)
Run Code Online (Sandbox Code Playgroud)

换句话说,我想像这样进行转换:

From:
# --[a,b,c]--[d,e]--|->
To:
# --a-b-c-----d-e---|->
Run Code Online (Sandbox Code Playgroud)

arrays split stream reactive-programming system.reactive

3
推荐指数
1
解决办法
231
查看次数