問題
私は、bashスクリプトで、次の方法でwifiの信号レベルを抽出しようとしました(引用符は違いがないようです)。
string="$(iwconfig wlan0 | grep -I Signal)"
私の場合echo $string
、期待どおりの結果が得られます。
Link Quality=63/70 Signal level=-47dBm
しかし、部分文字列を取得しようとするとecho ${string:5}
、同じ結果が返されます。
デバッグ:
の出力をwconfig wlan0 | grep -I Signal
直接変数に貼り付けると、string="Link Quality=63/70 Signal level=-47dBm"
すべてが期待どおりに機能します。
echo $string
# Link Quality=63/70 Signal level=-47dBm
echo ${string:5}
# Quality=63/70 Signal level=-47dBm
質問:インターネットによると、すべてのbash変数は文字列として保存されます。したがって、デバッグ結果は元の問題と同じでした。元の問題でテキストとして解析されない理由はありますか?