如何在Bash中将变量放入字符串

如何在Bash中将变量放入字符串,bash,variables,expression,Bash,Variables,Expression,我正在编写一个Bash脚本,并试图找出一种方法,让FFmpeg识别-force\u key\u frames选项中的全局变量。-force\u key\u frames选项可以将正则表达式作为参数,允许每5秒强制关键帧等功能: -force_key_frames 'expr:gte(t,n_forced*5)' 这对于每5秒强制一个关键帧很好,但是我不知道如何每x秒强制一个关键帧,x是用户通过脚本的其余部分获得的一个输入变量。我正在尝试的确切FFmpeg命令是: ffmpeg -i "vide

我正在编写一个Bash脚本,并试图找出一种方法,让FFmpeg识别
-force\u key\u frames
选项中的全局变量。
-force\u key\u frames
选项可以将正则表达式作为参数,允许每5秒强制关键帧等功能:

-force_key_frames 'expr:gte(t,n_forced*5)'
这对于每5秒强制一个关键帧很好,但是我不知道如何每x秒强制一个关键帧,x是用户通过脚本的其余部分获得的一个输入变量。我正在尝试的确切FFmpeg命令是:

ffmpeg -i "video.mp4" -vcodec: libx264 -b:v 500k \
-force_key_frames 'expr:gte(t,n_forced*${SEG_TIME})' -s:v 640x480 \
-r 29.97 -pix_fmt yuv420p -map 0 -f segment -segment_time ${SEG_TIME} \
-reset_timestamps 1 -y "output%01d.mp4"
脚本将变量
$SEG\u TIME
设置为5,但是
-force\u key\u frames
选项中的正则表达式似乎不喜欢
$SEG\u TIME
变量。

此部分

'expr:gte(t,n_-forced*${SEG_-TIME}
单引号导致字符串
${SEG_TIME}
按字面形式传递,而不是解释为变量,请尝试以下操作

“expr:gte(t,n_强制*${SEG_TIME})”
此部分

'expr:gte(t,n_-forced*${SEG_-TIME}
单引号导致字符串
${SEG_TIME}
按字面形式传递,而不是解释为变量,请尝试以下操作

“expr:gte(t,n_强制*${SEG_TIME})”