我写了一个名为citeselect
的ruby程序,它使用curses从bibtex bibliogrpahy中动态选择参考。我想把这个程序放到一个管道中,用这个程序的输出很容易地引用任何东西。不幸的是,我发现从 Ncurses and linux pipeline (c), Curses使用stdout
来显示。在bash中插入文件描述符3的输出
因此,当它作为输出提供时,我将输出引用键路由到文件描述符3中。我已经验证了它的工作原理:
citeselect 3>output
有没有办法捕捉到在bash一个班轮发往fd3
输出?类似于
echo "The citation key is $(citeselect 3>)"
谢谢。
你很近。 '3>&1'会将文件描述符3复制到文件描述符1(标准输出)。如果curses实际写入标准输出(而不是直接写入终端),则还需要进行一些扭曲操作以避免捕获它。 – chepner