Sorun
Bir bash betiğinde (tırnaklar hiçbir fark yaratmıyor gibi görünüyor) aşağıdaki şekilde wifi için sinyal seviyesini ayıklamaya çalıştım:
string="$(iwconfig wlan0 | grep -I Signal)"
Ben echo $string
, beklediğim şeyi alırsam:
Link Quality=63/70 Signal level=-47dBm
Ama bir alt dize almaya çalışırsam echo ${string:5}
, aynı şeyi döndürür.
debuging:
Çıktısını wconfig wlan0 | grep -I Signal
doğrudan değişkene yapıştırırsam : string="Link Quality=63/70 Signal level=-47dBm"
o zaman her şey beklendiği gibi çalışır.
echo $string
# Link Quality=63/70 Signal level=-47dBm
echo ${string:5}
# Quality=63/70 Signal level=-47dBm
Soru: İnternete göre tüm bash değişkenleri karakter dizgileri olarak saklanır. Bu nedenle, hata ayıklama sonucu orijinal sorunumla aynı olmalıdır. Orijinal problemde metin olarak ayrıştırılmamasının bir nedeni var mı?