假设我有一个接一个的作业要运行,我该如何将它们排队,并且如果可能的话仍然保留每个脚本产生的输出/日志。(例如,我可以使用 at 来安排任务,但我没有获得每个应用程序的日志/输出)
答案1
如果要以交互方式运行多个命令,只需用分号分隔它们:
foo ; bar ; baz
如果您希望在系统不太忙时(可能在您注销后)将一批命令排队在后台执行,则可以使用该命令。使用、或batch
运行的作业的输出将通过电子邮件发送给您。要实现此功能,您需要设置本地邮件服务器。batch
at
cron
答案2
使用以下命令编写命令&&它们之间例如:command1 && command2
注意:如果第一个命令返回错误,则第二个命令将不会被执行
答案3
如果这是一长串命令,或者您要经常执行此操作,我会编写一个脚本来为您执行此操作。
这种性质的 shell 脚本极其简单。
#!/bin/bash
foo
bar
baz
只需将此文本放入文件中,打开执行(chmod +x myscript
),然后./myscript
就可以了。
这将按顺序执行命令foo
、bar
和baz
(假设它们都被阻塞)。
如果你想做更复杂的事情,请参阅高级 Bash 脚本指南