Sto scrivendo uno script di shell per Linux, usando Bash, per tradurre qualsiasi file video in un MP4. Per questo, sto usando avconv
con libvorbis
per l'audio.
All'interno del mio script, ho una domanda per l'utente:
read -p "- Audio Quality [scale from -2 to 10] ? "
if [ -n "$REPLY" ] ; then
ABITRATE="-aq $REPLY"
fi
La mia stringa "ABITRATE" va nella avconv
riga di comando finale .
Ma vorrei dare all'utente la possibilità di rispondere a quella domanda con un valore in Kb (Kilobit) e tradurlo nella scala che libvorbis
utilizza. La "scala da -2 a 10" è questa:
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
Vorrei sapere come verificare se il mio $ REPLY è compreso in un intervallo di numeri. Ad esempio, vorrei che il mio script facesse qualcosa del genere:
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
È possibile (sono disposto a dire "sì, certo, non dovrebbe essere difficile" ma non conosco la sintassi da usare)?