1

我正在尝试使用child_processto execute xclip -selection c,但它似乎挂起或显着延迟执行。

我试过使用execSync

require('child_process').execSync('echo hi | xclip -selection c') && console.log('done');

我也尝试过使用exec

require('child_process').exec('echo hi | xclip -selection c', (a) => console.log('done', a)) && undefined;

enter在这两种情况下,按下和done打印之间都有明显的延迟。但是,剪贴板实际上几乎立即受到影响,似乎node只是似乎没有意识到命令已完成。

还要注意的是,执行之间的延迟似乎有所不同。另外,该exec 变体似乎比execSync有时似乎无限期挂起的变体延迟更少的时间。

4

1 回答 1

2

很抱歉回答我自己的问题,但我在发布问题后不久就偶然发现了答案。

显然xclip,默认情况下,调用时不会终止,而是继续侦听更多输入。指示xclip只期望 1 个输入需要-l参数,例如:

require('child_process').execSync('echo hi | xclip -selection c -l') && console.log('done');

来源:https ://github.com/astrand/xclip/issues/45

于 2018-09-04T15:34:18.563 回答