我正在尝试使用child_process
执行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
变体的延迟时间短,有时似乎无限期地挂起。
答案 0 :(得分:1)
很抱歉回答我自己的问题,但是在发布问题后不久,我偶然发现了答案。
显然,xclip
默认情况下在被调用时不会终止,但是会继续监听更多输入。要指示xclip
仅期望输入1,需要使用-l
参数,例如:
require('child_process').execSync('echo hi | xclip -selection c -l') && console.log('done');