मैं किसी भी वीडियो-फाइल को MP4 में ट्रांसलेट करने के लिए, Bash का उपयोग करके लिनक्स के लिए एक शेल स्क्रिप्ट लिख रहा हूं। कि के लिए, मैं उपयोग कर रहा हूँ avconv
के साथ libvorbis
ऑडियो के लिए।
मेरी स्क्रिप्ट के अंदर, मेरे पास उपयोगकर्ता के लिए एक प्रश्न है:
read -p "- Audio Quality [scale from -2 to 10] ? "
if [ -n "$REPLY" ] ; then
ABITRATE="-aq $REPLY"
fi
मेरा "संक्षिप्त" स्ट्रिंग अंतिम avconv
कमांड-लाइन में जाता है।
लेकिन मैं उपयोगकर्ता को Kb (किलोबिट) में एक मान के साथ उस प्रश्न का उत्तर देने का अवसर देना चाहूंगा, और उस पैमाने पर अनुवाद करूंगा जो इसका 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
क्या यह संभव है (मैं 'हां कहने के लिए तैयार हूं, कठोर नहीं होना चाहिए' लेकिन मुझे पता नहीं है कि सिंटैक्स का उपयोग करना है)?