小编use*_*013的帖子

如何杀死bash中的所有工作?

所以,我有一些这样的工作:

sleep 30 | sleep 30 &
Run Code Online (Sandbox Code Playgroud)

自然的思考方式是:

kill `jobs -p`
Run Code Online (Sandbox Code Playgroud)

但这只会杀死第一个sleep而不是第二个。

这样做会杀死两个进程:

kill %1
Run Code Online (Sandbox Code Playgroud)

但是,如果有很多这样的工作在运行,那最多只会杀死一项工作。

它不应该终止具有相同名称但不在此 shell 中运行的进程。

bash job-control

7
推荐指数
2
解决办法
2万
查看次数

无需等待即可读取管道缓冲区中的所有内容

有没有办法读取管道缓冲区中已有的所有内容,将它们通过管道传输到另一个程序,然后立即退出而无需等待更多输入?

它必须是二进制安全的。可以要求安装其他程序。

例如,下面的命令应该输出aand not b,并在第二个回声上引发 SIGPIPE (至少如果系统没有太多负载):

{ echo a; sleep 2s; echo b;} | { sleep 1s; my_command;}
Run Code Online (Sandbox Code Playgroud)

pipe shell-script buffer

6
推荐指数
1
解决办法
1641
查看次数

如何检查输入设备是否在 xinput 中被禁用?

我可以使用以下方法禁用键盘或鼠标:

xinput disable <device>
Run Code Online (Sandbox Code Playgroud)

但是我怎么知道一个设备以前是否在命令行中被禁用?

command xinput

6
推荐指数
1
解决办法
2570
查看次数

标签 统计

bash ×1

buffer ×1

command ×1

job-control ×1

pipe ×1

shell-script ×1

xinput ×1