Shell脚本可以与at提示符交互吗

时间:2019-03-11 10:38:54

标签: bash shell

我想编写一个运行的shell脚本,以计划将命令以“ at”运行。

要计划的命令是一个复杂的Web抓取作业,绝对不能在计划的时间之前运行。

如果“明天晚上9点”在我的shell脚本中有,它将在提示下打开一个at,然后必须编写命令。通常我会按ctrl + D结束此提示。

如何编写一个shell脚本来自动化该过程,包括ctrl + D命令来完成该命令?

我试图写一些东西在我的shell脚本中写一个EOT字符,但是它不起作用。

我的管道问题:

user@server:~/testing$ ls
user@server:~/testing$ touch TESTFILE | at 9pm tomorrow
warning: commands will be executed using /bin/sh
job 31 at Tue Mar 12 21:00:00 2019
user@server:~/testing$ ls
TESTFILE

1 个答案:

答案 0 :(得分:1)

您可以使用echo将“ touch TESTFILE”命令传递给at:

$ echo "touch TESTFILE" | at 12:35
warning: commands will be executed using /bin/sh
job 1 at Mon Mar 11 12:35:00 2019

因此在您的较长示例中:

echo "youtube-dl --username 'USERNAME' --password 'PASSWORD' -o '~/%(playlist)s/%(chapter_number)s - %(chapter)s/%(playlist_index)s - %(title)s.%(ext)s' --min-sleep-interval 30 --max-sleep-interval 60 $1 --playlist" | at $NEXTDATE