背景
我正在编写一个脚本,它偶尔会通过at命令对作业进行排队。为了以一种自动化的、非交互式的方式实现这一点,我将执行的命令echo到一个文件中,即:
echo "ls -la" > cmd.txt然后,我将命令安排在2分钟后通过以下方式运行:
at -f cmd.txt now + 2 min问题
我想以一种自动化的、非交互式的、确定性的方式来确定与我的脚本刚刚排队的任务相关的作业号。不幸的是,在返回代码(即echo $?)中似乎没有提供任何内容,也没有我可以发出的CLI命令,这为我提供了以下内容。我总是可以刮掉stdout数据,即:
$> A=$(at -f cmd.txt now + 1 min)
warning: commands will be executed using /bin/sh
job 6 at Fri Mar 8 07:18:00 2019
但是,如果可能的话,我想使用比解析stdout数据更规范/直接的方法,因为我希望避免stdout在不同平台(即Linux、BSD、OSX)之间发生变化的情况。
问题
如何才能直接为我的脚本排队的at作业获取作业号(在脚本中)?
编辑
我必须同时考虑使用at命令的其他进程。
发布于 2019-03-08 15:33:42
您可以使用atq查看每个提交后的作业队列,并从最后一行的第一列中获取任何新提交的作业的作业ID。
https://stackoverflow.com/questions/55066250
复制相似问题