Estou escrevendo um shell script para Linux, usando o Bash, para converter qualquer arquivo de vídeo em um MP4. Para isso, estou usando avconv
com libvorbis
áudio.
Dentro do meu script, tenho uma pergunta para o usuário:
read -p "- Audio Quality [scale from -2 to 10] ? "
if [ -n "$REPLY" ] ; then
ABITRATE="-aq $REPLY"
fi
Minha seqüência de caracteres "ABITRATE" vai para a avconv
linha de comando final .
Mas eu gostaria de dar ao usuário a oportunidade de responder a essa pergunta com um valor em Kb (Kilobit) e traduzi-la na escala libvorbis
usada. A "escala de -2 a 10" é a seguinte:
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
Gostaria de saber como verificar se meu $ REPLY está em um intervalo de número. Por exemplo, eu gostaria que meu script fizesse algo assim:
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
Isso é possível (estou disposto a dizer 'sim, claro, não deve ser difícil', mas não conheço a sintaxe a ser usada)?