如何对命令进行排队

如何对命令进行排队

假设我有一个接一个的作业要运行,我该如何将它们排队,并且如果可能的话仍然保留每个脚本产生的输出/日志。(例如,我可以使用 at 来安排任务,但我没有获得每个应用程序的日志/输出)

答案1

如果要以交互方式运行多个命令,只需用分号分隔它们:

foo ; bar ; baz

如果您希望在系统不太忙时(可能在您注销后)将一批命令排队在后台执行,则可以使用该命令。使用、或batch运行的作业的输出将通过电子邮件发送给您。要实现此功能,您需要设置本地邮件服务器。batchatcron

答案2

使用以下命令编写命令&&它们之间例如:command1 && command2

注意:如果第一个命令返回错误,则第二个命令将不会被执行

答案3

如果这是一长串命令,或者您要经常执行此操作,我会编写一个脚本来为您执行此操作。

这种性质的 shell 脚本极其简单。

#!/bin/bash
foo
bar
baz

只需将此文本放入文件中,打开执行(chmod +x myscript),然后./myscript就可以了。

这将按顺序执行命令foobarbaz(假设它们都被阻塞)。

如果你想做更复杂的事情,请参阅高级 Bash 脚本指南

相关内容