如何运行与视频长度一样长的bash脚本?
我将设置一个 cron 来在晚上 7 点启动 bash 脚本,并且我希望让它运行与视频长度一样长。怎么做?
示例:晚上 7 点 bash 脚本启动 movie.avi,长度为 3 分钟。 Bash 脚本持续运行 3 分钟然后关闭。
答案1
你可以使用wait
.
来自 Linux 手册页:
等待,waitpid,waitid- 等待进程改变状态
所有这些系统调用都用于等待调用进程的子进程的状态更改,并获取有关状态已更改的子进程的信息。状态改变被认为是: 子进程终止;孩子被信号拦住了;或者孩子通过信号恢复。在子进程终止的情况下,执行等待允许系统释放与子进程相关的资源;如果不执行等待,则终止的子进程仍处于“僵尸”状态。
举个例子:
#!/bin/bash
/usr/bin/vlc --vlc_args &
wait
echo "VLC has finished."
poweroff # you said: "then shuts down"
答案2
如果您希望 bash 脚本播放视频并在视频结束时退出,您可以使用 vlc 选项,--play-and-exit
如下所示:
#! /bin/bash
vlc --play-and-exit /path/to/video.mpg
这样当视频结束时vlc就会自动退出。
答案3
不确定如何从脚本中调用视频软件,但只要软件在电影完成后关闭,您就可以使用wait
:
#!/bin/bash
/video/software &
$PID=$!
wait $PID
echo "Movie complete!"