也许这更多是关于脚本和终端使用的一般问题,而不是“at”命令的使用问题。不管怎样,我正在探索如何使用 at 命令来掌握它的行为,以及在将它用于严肃的脚本之前如何控制它。
我编写了一个名为 at-test.sh 的简单脚本,将其保存到 $HOME 并使其可执行:
#!/bin/sh
echo $(date +%H:%M:%s) > /dev/pts/9
exit 0
然后通过运行它
at -f './at-test.sh' now + 1 minutes
它按预期运行,但我必须按 Ctrl+C 才能恢复 shell 提示符。后来我了解到,按 Enter 键也可以恢复提示。是否有办法通过脚本中的命令恢复提示?
答案1
您已成功提交at
作业,并且已成功将日期打印到(您的)终端(位于 )/dev/pts/9
。您还有一个 shell,它已打印提示并正在等待您的输入。
这是对所发生情况的模拟:
your-prompt-here$ at -f './at-test.sh' now + 1 minutes
job 1 at Fri Mar 8 20:13:00 2019
your-prompt-here$
... 一分钟过去了;恢复示威
your-prompt-here$ 20:14:1552093897
echo I am still here
I am still here
your-prompt-here$
如您所见,我的 shell 接受了该echo
命令;我的光标根本不在我“预期”的位置,因为该at
作业潦草地写在我的终端上。