我正在使用Bash编写Linux的外壳脚本,以将任何视频文件转换为MP4。为此,我使用avconv
with libvorbis
进行音频。
在我的脚本中,我对用户有一个问题:
read -p "- Audio Quality [scale from -2 to 10] ? "
if [ -n "$REPLY" ] ; then
ABITRATE="-aq $REPLY"
fi
我的“ ABITRATE”字符串进入最终的avconv
命令行。
但我想让用户有机会用Kb(千比特)的值来回答这个问题,并将其转换为libvorbis
使用的标度。“从-2到10的比例”是这样的:
Quality Kbit/s Normalization
-----------------------------
-2 ~32 y
-1 ~48 y
0 ~64 y
1 ~80 y
2 ~96 y
3 ~112 y
4 ~128 n
5 ~160 n
6 ~192 n
7 ~224 n
8 ~256 n
9 ~320 n
10 ~500 n
我想知道如何检查我的$ REPLY是否在数字范围内。例如,我希望脚本执行以下操作:
if [ $REPLY is a number between 1 and 32 ] ; then
REPLY="-2"
elif [ $REPLY is a number between 33 and 48 ] ; then
REPLY="-1"
fi
这是否可能(我愿意说“是的,当然不应该很难”,但我不知道使用的语法)吗?