这是我在 bash 中运行的一个简单命令,但由于某种原因,该数组不会被填充。
array=() && sudo iwlist wlan0 scan | grep 'Address'| while read line; do array[${#array[@]}]=$line; done
我也尝试过以这种方式填充数组:
array=()
sudo iwlist wlan0 scan | grep 'Address'| while read line; do array+=($line); done
但它给了我同样的结果。我知道它有效,因为当我这样做时:
sudo iwlist wlan0 scan | grep 'Address'| while read line; do "echo $line"; done
它将打印从 grep 传送到 while 循环的每一行。
当我检查数组“ echo ${#array[@] ”的大小时,它将显示 0,如果我打印数组,它显然什么也不打印。您在该行中看到任何错误吗?
**更新。我通过使用这样的 for 循环让它工作:
for line in $(sudo iwlist wlan0 scan | grep 'Address' -A5); do array+=($line); done