Ich schreibe ein Shell-Skript für Linux und verwende Bash, um jede Videodatei in ein MP4-Format zu übersetzen. Dafür verwende ich avconv
mit libvorbis
für Audio.
In meinem Skript habe ich eine Frage an den Benutzer:
read -p "- Audio Quality [scale from -2 to 10] ? "
if [ -n "$REPLY" ] ; then
ABITRATE="-aq $REPLY"
fi
Meine "ABITRATE" Zeichenfolge wird in die endgültige avconv
Befehlszeile eingegeben .
Ich möchte dem Benutzer jedoch die Möglichkeit geben, diese Frage mit einem Wert in Kb (Kilobit) zu beantworten und in die verwendete Skala zu übersetzen libvorbis
. Die "Skala von -2 bis 10" lautet wie folgt:
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
Ich möchte wissen, wie ich überprüfen kann, ob sich mein $ REPLY in einem Zahlenbereich befindet. Ich möchte beispielsweise, dass mein Skript Folgendes ausführt:
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
Ist dies möglich (ich bin bereit zu sagen, "Ja, sollte nicht schwer sein", aber ich kenne die zu verwendende Syntax nicht)?