这是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
的内置超时功能。