播放视频debate.mkv
花费了50分钟。
mplayer debate.mkv
它播放视频debate.mkv
sleep 60
它使操作系统睡眠1分钟。
我要播放视频1分钟,然后睡眠1分钟,继续在上一个中断点播放视频1分钟,然后睡眠1分钟。
waitTime=60;
for i in {1..50}
do
startTime=$(date +%s)
if [[ $(($(date +%s) - startTime)) -lt $waitTime ]];then
mplayer debate.mkv
else
sleep 60
fi
done
mplayer debate.mkv
不会在$(($(date +%s) - startTime))
大于$waitTime
时停止,如何解决我的bash代码?
答案 0 :(得分:0)
无论您提到的mplayer
条件如何,恐怕您的代码在启动if
命令之后都无法控制(启动/停止)。
请尝试:
#!/bin/bash
waitTime=60
mplayer debate.mkv &
pid=$! # pid of mplayer above
for i in {1..50}
do
sleep $waitTime
kill -s SIGSTOP $pid
sleep $waitTime
kill -s SIGCONT $pid
done
与其他命令一样,mplayer
在工作时接受信号。 SIGSTOP
信号暂停执行,SIGCONT
恢复执行。