সমস্যা
আমি নীচে বাশ স্ক্রিপ্টে ওয়াইফাইয়ের জন্য সিগন্যাল স্তরটি বের করার চেষ্টা করেছি (উদ্ধৃতিতে কোনও পার্থক্য নেই বলে মনে হচ্ছে):
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
প্রশ্ন: ইন্টারনেট অনুসারে, সমস্ত ব্যাশ ভেরিয়েবল অক্ষরের স্ট্রিং হিসাবে সংরক্ষণ করা হয়। সুতরাং, ডিবাগিংয়ের ফলাফলটি আমার মূল সমস্যার মতোই হওয়া উচিত ছিল। এটির মূল সমস্যাটির পাঠ্য হিসাবে বিশ্লেষণের কোনও কারণ নেই?