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