Masalah
Saya mencoba mengekstrak level sinyal untuk wifi dengan cara berikut, dalam skrip bash (kutipan tampaknya tidak membuat perbedaan):
string="$(iwconfig wlan0 | grep -I Signal)"
Jika saya echo $string
, saya mendapatkan apa yang saya harapkan:
Link Quality=63/70 Signal level=-47dBm
Tetapi jika saya mencoba untuk mendapatkan substring echo ${string:5}
,, ia mengembalikan hal yang sama.
Debuging:
Jika saya menempelkan output wconfig wlan0 | grep -I Signal
langsung ke variabel: string="Link Quality=63/70 Signal level=-47dBm"
maka semuanya berfungsi seperti yang diharapkan.
echo $string
# Link Quality=63/70 Signal level=-47dBm
echo ${string:5}
# Quality=63/70 Signal level=-47dBm
Pertanyaan: Menurut internet, semua variabel bash disimpan sebagai string karakter. Jadi, hasil debug seharusnya sama dengan masalah asli saya. Apakah ada alasan mengapa itu tidak diuraikan sebagai teks dalam masalah asli?