Piszę skrypt powłoki dla systemu Linux, używając Bash, aby przetłumaczyć dowolny plik wideo na MP4. Do tego używam avconv
z libvorbis
dźwiękiem.
Wewnątrz mojego skryptu mam pytanie do użytkownika:
read -p "- Audio Quality [scale from -2 to 10] ? "
if [ -n "$REPLY" ] ; then
ABITRATE="-aq $REPLY"
fi
Mój ciąg „ABITRATE” przechodzi do ostatniego avconv
wiersza polecenia.
Chciałbym jednak dać użytkownikowi możliwość odpowiedzi na to pytanie wartością Kb (Kilobit) i przetłumaczenia go na libvorbis
używaną skalę . „Skala od -2 do 10” jest następująca:
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
Chciałbym wiedzieć, jak sprawdzić, czy mój $ REPLY mieści się w zakresie liczby. Na przykład chciałbym, aby mój skrypt zrobił coś takiego:
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
Czy to możliwe (jestem gotów powiedzieć „tak, oczywiście, nie powinno być trudne”, ale nie znam składni)?