Я пишу сценарій оболонки для Linux, використовуючи Bash, щоб перевести будь-який відеофайл у формат MP4. Для цього я використовую avconv
з libvorbis
аудіо.
Всередині мого сценарію у мене є запитання до користувача:
read -p "- Audio Quality [scale from -2 to 10] ? "
if [ -n "$REPLY" ] ; then
ABITRATE="-aq $REPLY"
fi
Мій рядок "ABITRATE" переходить у заключний avconv
командний рядок.
Але я хотів би надати користувачеві можливість відповісти на це питання зі значенням у Кб (Кілобіт) та перекласти його у масштаб, який libvorbis
використовує. "Шкала від -2 до 10" така:
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
Мені хотілося б дізнатися, як перевірити, чи відповідає моє $ ВІДПОВІДЬ у діапазоні. Наприклад, я хотів би, щоб мій сценарій робив щось подібне:
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
Чи можливо це (я готовий сказати «так, звичайно, не повинно бути важким», але я не знаю синтаксис, який слід використовувати)?