我正在寻找一种从终端提示符“堆叠”命令的方法,以便一次只执行一个命令:
&
)&
)。但是,提示又回来了。一种混合:
&
在后台启动,但第二个命令会与第一个命令同时运行,我不希望那样;&&
或者;
一个接一个地启动一个命令,但你必须一次编写它们。我想在命令执行或堆叠后重新获得提示。我发现的最接近的是:
$ cmd1 &
$ wait; cmd2 &
Run Code Online (Sandbox Code Playgroud)
但我正在寻找更有效的东西,允许我查看挂起、失败和已完成的命令。也许是这样的:
$ stackit cmd1
cmd1 started
$ stack it cmd2
cmd2 queued
$ stack it cmd3
cmd3 queued
$ stack it --
[1] running
[2] queued
[3] queued
Run Code Online (Sandbox Code Playgroud)
也许甚至允许一些并行性,比如当时的 2 个命令。
这看起来相当通用,所以我不想重新发明轮子。
用例:
您正在搜索任务后台处理程序命令。在 Debian/Ubuntu 的存储库中,要安装的软件包是task-spooler
,要调用的二进制文件是tsp
。
在你的情况(&&
风格)你可以使用
tsp -d cmd1
tsp -d cmd2
tsp -d cmd3
Run Code Online (Sandbox Code Playgroud)
然后使用
tsp -l
Run Code Online (Sandbox Code Playgroud)
检查队列的状态。
还有一些方法-S
可以增加最大同时作业的数量。