Tôi đang viết một kịch bản shell cho Linux, sử dụng Bash, để dịch bất kỳ tệp video nào sang MP4. Vì thế, tôi đang sử dụng avconv
với libvorbis
âm thanh.
Trong kịch bản của tôi, tôi có một câu hỏi cho người dùng:
read -p "- Audio Quality [scale from -2 to 10] ? "
if [ -n "$REPLY" ] ; then
ABITRATE="-aq $REPLY"
fi
Chuỗi "ABITRATE" của tôi đi vào dòng avconv
lệnh cuối cùng .
Nhưng tôi muốn cho người dùng cơ hội trả lời câu hỏi đó với giá trị bằng Kb (Kilobit) và dịch nó sang thang đo libvorbis
sử dụng. "Thang điểm từ -2 đến 10" là đây:
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
Tôi muốn biết cách kiểm tra xem $ REPLY của tôi có nằm trong phạm vi số không. Ví dụ, tôi muốn kịch bản của mình làm một cái gì đó như thế này:
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
Điều này có thể không (tôi sẵn sàng nói 'tất nhiên, không nên khó' nhưng tôi không biết cú pháp để sử dụng)?