J'écris un script shell pour Linux, en utilisant Bash, pour traduire n'importe quel fichier vidéo en MP4. Pour cela, j'utilise avconv
avec libvorbis
pour l'audio.
Dans mon script, j'ai une question pour l'utilisateur:
read -p "- Audio Quality [scale from -2 to 10] ? "
if [ -n "$REPLY" ] ; then
ABITRATE="-aq $REPLY"
fi
Ma chaîne "ABITRATE" va dans la avconv
ligne de commande finale .
Mais je voudrais donner à l'utilisateur la possibilité de répondre à cette question avec une valeur en Kb (Kilobit), et de la traduire dans l'échelle qui libvorbis
utilise. "L'échelle de -2 à 10" est la suivante:
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
Je voudrais savoir comment vérifier si ma $ REPLY est dans une plage de nombres. Par exemple, je voudrais que mon script fasse quelque chose comme ceci:
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
Est-ce possible (je suis prêt à dire «oui bien sûr, ça ne devrait pas être difficile» mais je ne connais pas la syntaxe à utiliser)?