Problema
Tentei extrair o nível de sinal do wifi da seguinte maneira, em um script bash (as aspas parecem não fazer diferença):
string="$(iwconfig wlan0 | grep -I Signal)"
Se eu echo $stringconseguir o que espero:
Link Quality=63/70 Signal level=-47dBm
Mas se eu tentar obter uma substring echo ${string:5}, ela retornará a mesma coisa.
Depuração:
Se eu colar a saída wconfig wlan0 | grep -I Signaldiretamente na variável: string="Link Quality=63/70 Signal level=-47dBm"tudo funcionará conforme o esperado.
echo $string
# Link Quality=63/70 Signal level=-47dBm
echo ${string:5}
# Quality=63/70 Signal level=-47dBm
Pergunta: De acordo com a Internet, todas as variáveis do bash são armazenadas como cadeias de caracteres. Assim, o resultado da depuração deveria ter sido o mesmo que o meu problema original. Existe algum motivo para não ser analisado como texto no problema original?