मैं प्रोग्रामिंग को बैश करने के लिए अपेक्षाकृत नया हूं और मैं वर्तमान में एक साधारण कैलकुलेटर बना रहा हूं।बैश रेगेक्स उपयोगकर्ता इनपुट से फ़्लोटिंग पॉइंट नंबरों की जांच करने के लिए
इसे फ़्लोटिंग पॉइंट नंबरों का उपयोग करने की आवश्यकता है और जांचें कि वे ऐसा हैं।
मैं एक checkNumbers समारोह है:
function checkNumber {
regExp=[0-9]
if [ $testNo =~ $regExp ]
then
echo "That is a number!"
let check=1
else
echo "Damn! Not A Number!"
fi
}
जहां मैं इस तरह एक नंबर इनपुट करने के लिए उपयोगकर्ता मिलता है:
:./calculator.sh: line 39: [: =~: binary operator expected
while [ $check -eq 0]
do
echo "Please enter a number
read testNo
echo ""
checkNumber
done
यह काम नहीं करता, मैं इस त्रुटि मिलती है
लाइन 39 है:
if [ $testNo =~ $regExp ]
मैं रेगुलर एक्सप्रेशन के बहुत प्रयास किया है:
^*[0-9]*$
और
^*[0-9]\.[0.9]*$
आदि आदि
भी, मैं बंधा है अन्य चेक के प्रदर्शन के तरीके:
case $testNo
in
^*[0-9]*$) echo "That is a number!";;
*) echo "Error! Not a number!";;
esac
और
if [ $testNo = ^*[0-9]*$ ]
then
echo "etc etc"
else
echo "oops"
fi
मुझे फ़्लोटिंग पॉइंट नंबरों के साथ काम करने की भी आवश्यकता है।
क्या कोई मुझे बता सकता है कि मैं इस बारे में कैसे जाता हूं?
मुझे आशा है कि आप फार्म '12345e42' की संख्या की जरूरत नहीं है बोली न करें। –