我尝试过
1) start and stream video to vlc
,
2) record the same video stream to a file that starts at 05:45 am the next day
一切正常,但开始时间不是第二天早上 05:45 开始,而是立即开始。我错过了什么?
bash -c "streamlink --stdout https://www.youtube.com/watch?v=XOacA3RYrXk 720p | tee /tmp/water_vid/water_video-$(date +"%H:%M_%m-%d-%Y").mkv | vlc -" | at 05:45 am
答案1
您的语法相当于:
notify-send "Hello" | at now +1 minute
其中notify-send
命令将立即执行,并且不会将任何内容传送到 的标准输入at
。通过使用atq
获取最新的作业编号,at -c <job-number>
我们可以看到实际将执行的内容。因此,对上述作业的分析将不会显示任何内容:
$ at -c "$(atq | sort | awk 'END{print $1}')" | grep 'Hello'
正确的语法是使用echo
将命令输出为字符串,然后通过管道传输到命令的标准输入at
:
echo 'notify-send "Hello"' | at now +1 minute
在这种情况下,最新作业的分析输出将会有所不同:
$ at -c "$(atq | sort | awk 'END{print $1}')" | grep 'Hello'
notify-send "Hello"
答案2
看了 man at,我假设你应该指定 5:45am,不带空格。它还允许你指定明天,所以我会尝试“明天早上 5:45”