Problema
Ho cercato di estrarre il livello del segnale per il wifi nel modo seguente, in uno script bash (le virgolette sembrano non fare differenza):
string="$(iwconfig wlan0 | grep -I Signal)"
Se echo $string
ottengo ciò che mi aspetto:
Link Quality=63/70 Signal level=-47dBm
Ma se provo a ottenere una sottostringa, echo ${string:5}
restituisce la stessa cosa.
debuging:
Se incollo l'output di wconfig wlan0 | grep -I Signal
direttamente nella variabile: string="Link Quality=63/70 Signal level=-47dBm"
allora tutto funziona come previsto.
echo $string
# Link Quality=63/70 Signal level=-47dBm
echo ${string:5}
# Quality=63/70 Signal level=-47dBm
Domanda: Secondo Internet, tutte le variabili bash sono memorizzate come stringhe di caratteri. Pertanto, il risultato del debug avrebbe dovuto essere lo stesso del mio problema originale. C'è qualche motivo per cui non viene analizzato come testo nel problema originale?