Проблема
Я намагався витягнути рівень сигналу для Wi-Fi наступним чином, в баш-скрипті (котирування, схоже, не мають ніякого значення):
string="$(iwconfig wlan0 | grep -I Signal)"
Якщо я echo $string
, я отримую те, що очікую:
Link Quality=63/70 Signal level=-47dBm
Але якщо я спробую отримати підрядку echo ${string:5}
, вона поверне те саме.
Налагодження:
Якщо я вставляю вихід 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
Питання: За даними Інтернету, всі змінні bash зберігаються як символьні рядки. Таким чином, результат налагодження повинен був бути таким же, як і моя початкова проблема. Чи є якась причина, що вона не розбирається як текст у початковій проблемі?