Bash读取时间运行得比指定的要快



这是bash代码

read -t 10 -p "Video path ==>" VIDEO_SOURCE
[ "$VIDEO_SOURCE" = q ]
if [ "$VIDEO_SOURCE" = "$NONE" ]; then
./run.sh

基本上我想让它跑/10秒后运行.sh如果我没有给它任何输入,问题是运行/在不到10秒内运行.sh。

编辑:

这是完整的脚本

#! /bin/bash
VBR="1500k"
FPS="24"
QUAL="superfast"
RTMP_URL="rtmp://live.live"
KEY="xxx-xxx-xxx-xxx"
VIDEO_SOURCE="video.mp4"
while :; do
ffmpeg 
-re -f lavfi -i "movie=filename=$VIDEO_SOURCE:loop=0, setpts=N/(FRAME_RATE*TB)" 
-vcodec libx264 -pix_fmt yuv420p -preset $QUAL -r $FPS -g $(($FPS * 2)) -b:v $VBR 
-f flv "$RTMP_URL/$KEY"
read -t 10 -p "Video path ==>" VIDEO_SOURCE
[ "$VIDEO_SOURCE" = q ]
if [ -z "$VIDEO_SOURCE"]; then
./run.sh
fi
done

我想让它在崩溃后等待10秒,或者在我按下q后,在10秒后,如果指定了它,它将运行新的输入,如果输入无效或为空(如果我键入输入太慢或崩溃(,我希望它运行./run.sh,我在tmux中运行这个脚本只是为了保持它的运行,如果我想更新输入,我只需返回到tmux会话,按q并给它新的输入。

我无法重现您的问题。尽管如此,如果真的有这样一个奇怪的问题,你可以尝试使用以下破解方法来解决它:

read var < <(timeout --foreground 10 head -n1)

这应该有点像read -t 10,但依赖于外部程序timeout,而不是read的内置超时功能。

相关内容

  • 没有找到相关文章

最新更新