Hej mam skrypt napisany troche w bashu troche w sh ale musi być w czystym sh ponieważ ma być odpalany na dystrybucji OpenWrt z domyslnym shellem bodajże ash. Nie za bardzo sobie potrafie z tym porawdzic:

 #!/bin/sh
iwlist scan > /tmp/scan.txt 2>/dev/null
a=0;b=0;x=0
while read line;do
  [ "`echo $line | grep ESSID:`" ] && essid["$a"]=`echo "$line" | cut -d : -f 2 |  grep -o '[a-z,A-Z,0-9]*'` && (("a++"))
  [ "`echo $line | grep Address`" ] && address["$b"]=`echo "$line" | awk '{print $5}'` && (("b++"))
done < /tmp/scan.txt
while [ $x -lt ${#essid[@]} ];do
 echo "${essid["$x"]}" --- "${address["$x"]}"
  (( "x++" ))
done

daje mi wyniki:

 ./skrypt.sh
./skrypt.sh: line 7: address[0]=A2:E0:4E:E2:B1:28: not found
./skrypt.sh: line 7: essid[0]=: not found
./skrypt.sh: line 7: address[0]=00:1D:7E:61:1F:CF: not found
./skrypt.sh: line 7: essid[0]=: not found
./skrypt.sh: line 7: address[0]=F0:7D:68:BE:75:3A: not found
./skrypt.sh: line 7: essid[0]=: not found
./skrypt.sh: line 7: address[0]=00:12:17:80:21:13: not found
./skrypt.sh: line 7: essid[0]=: not found
./skrypt.sh: line 7: address[0]=00:1C:F0:FA:C3:7E: not found
./skrypt.sh: line 7: essid[0]=: not found
./skrypt.sh: line 9: syntax error: Bad substitution