2
ตัวแปรไม่แยกวิเคราะห์เป็นสตริง
ปัญหา ฉันพยายามแยกระดับสัญญาณ wifi ในวิธีต่อไปนี้ในสคริปต์ทุบตี (คำพูดดูเหมือนจะไม่แตกต่างกัน): string="$(iwconfig wlan0 | grep -I Signal)" ถ้าฉันecho $stringฉันได้รับสิ่งที่ฉันคาดหวัง: Link Quality=63/70 Signal level=-47dBm แต่ถ้าฉันลองรับสายอักขระย่อยecho ${string:5}มันจะส่งคืนสิ่งเดียวกัน debuging: ถ้าฉันวางผลลัพธ์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 คำถาม:ตามอินเทอร์เน็ตตัวแปรทุบตีทั้งหมดจะถูกเก็บเป็นสตริงอักขระ ดังนั้นผลลัพธ์การดีบักควรเหมือนกันกับปัญหาดั้งเดิมของฉัน มีเหตุผลบางอย่างที่ไม่แยกวิเคราะห์ข้อความในปัญหาดั้งเดิมหรือไม่?