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