मुसीबत
मैंने निम्नलिखित तरीके से वाईफ़ाई के लिए सिग्नल स्तर को निकालने की कोशिश की, बैश स्क्रिप्ट में (उद्धरण से कोई फर्क नहीं पड़ता है):
string="$(iwconfig wlan0 | grep -I Signal)"
यदि मैं echo $string
, मुझे वह मिलता है जिसकी मुझे उम्मीद है:
Link Quality=63/70 Signal level=-47dBm
लेकिन अगर मैं एक विकल्प प्राप्त करने की कोशिश करता हूं echo ${string:5}
, तो यह उसी चीज को वापस करता है।
debuging:
अगर मैं wconfig wlan0 | grep -I Signal
सीधे वेरिएबल के आउटपुट को पेस्ट करता हूं : string="Link Quality=63/70 Signal level=-47dBm"
तो सब कुछ उम्मीद के मुताबिक काम करता है।
echo $string
# Link Quality=63/70 Signal level=-47dBm
echo ${string:5}
# Quality=63/70 Signal level=-47dBm
प्रश्न: इंटरनेट के अनुसार, सभी बैश वेरिएबल को कैरेक्टर स्ट्रिंग्स के रूप में संग्रहीत किया जाता है। इस प्रकार, डिबगिंग परिणाम मेरी मूल समस्या के समान होना चाहिए। क्या कोई कारण है कि इसे मूल समस्या में पाठ के रूप में नहीं रखा गया है?