ฉันเขียนเชลล์สคริปต์สำหรับ Linux โดยใช้ Bash เพื่อแปลไฟล์วิดีโอใด ๆ ให้เป็น MP4 สำหรับสิ่งที่ฉันใช้avconv
กับlibvorbis
เสียง
ภายในสคริปต์ของฉันฉันมีคำถามสำหรับผู้ใช้:
read -p "- Audio Quality [scale from -2 to 10] ? "
if [ -n "$REPLY" ] ; then
ABITRATE="-aq $REPLY"
fi
สตริง "ABITRATE" ของฉันเข้าสู่avconv
บรรทัดคำสั่งสุดท้าย
แต่ฉันต้องการให้ผู้ใช้มีโอกาสตอบคำถามนั้นด้วยค่าเป็น Kb (Kilobit) และแปลเป็นมาตราส่วนที่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
ฉันต้องการทราบวิธีตรวจสอบว่า $ REPLY ของฉันอยู่ในช่วงจำนวนหรือไม่ ตัวอย่างเช่นฉันต้องการให้สคริปต์ทำสิ่งนี้:
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
เป็นไปได้ (ฉันยินดีที่จะพูดว่า 'ใช่แน่นอนไม่ควรยาก' แต่ฉันไม่รู้จักไวยากรณ์ที่จะใช้)?