gpt4 book ai didi

linux - 如何排队工作

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:52:12 28 4
gpt4 key购买 nike

是否可以根据正在运行的作业的输出对作业进行排队,以便新作业一直等到正在运行的作业终止?

假设的例子:你应该运行:

./configure && make

但你只跑了:

./configure

现在你想告诉 make 一旦配置(成功)完成就继续它,而你去做一些有用的事情,比如小睡一下?许多其他耗时的工作也会出现同样的情况。

(据我所知,基本的作业控制命令 -- fg、bg、jobs、kill、&、ctrl-Z -- 不要这样做。问题出现在 bash/Ubuntu 上,但我会对一般的 *nix 解决方案感兴趣,如果它存在的话。)

最佳答案

我假设您是在 shell 提示符下键入这些命令,并且 ./configure 命令仍在运行。

./configure
# oops, forgot type type "make"
[ $? -eq 0 ] && make

命令[ $? -eq 0 ] 当且仅当 ./configure 命令成功时才会成功。

(您也可以使用 [ $? = 0 ],它进行字符串比较而不是数字比较。)

(如果您愿意假设 ./configure 命令会成功,您可以只键入 make。)

从 chepner 的评论中窃取和更新一个想法,另一种可能性是通过键入 Ctrl-Z 暂停工作,然后将其置于后台 (bg),然后:

wait %% && make

wait %% 等待“当前”作业,即“最后一个在前台停止或在后台启动的作业”。这可以通过用不同的作业规范替换 %% 来概括为等待任何作业。

你可以将其简化为

wait && make

如果您确定没有其他后台作业(没有参数的wait 等待所有后台作业完成)。

关于linux - 如何排队工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25997278/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com