Problème
J'ai essayé d'extraire le niveau du signal pour le wifi de la manière suivante, dans un bash script (les guillemets semblent ne faire aucune différence) :
string="$(iwconfig wlan0 | grep -I Signal)"
Si je echo $string
J'obtiens ce que j'attends :
Link Quality=63/70 Signal level=-47dBm
Mais si j'essaie d'obtenir une sous-chaîne, echo ${string:5}
il renvoie la même chose.
Débogage :
Si je colle la sortie de wconfig wlan0 | grep -I Signal
directement dans la variable : string="Link Quality=63/70 Signal level=-47dBm"
alors tout fonctionne comme prévu.
echo $string
# Link Quality=63/70 Signal level=-47dBm
echo ${string:5}
# Quality=63/70 Signal level=-47dBm
Question : Selon l'internet, toutes les variables bash sont stockées comme des chaînes de caractères. Ainsi, le résultat du débogage aurait dû être le même que celui de mon problème initial. Y a-t-il une raison pour laquelle il n'est pas analysé comme du texte dans le problème original ?