I have the following bash script running at startup on my WRT1900ac linksys:USER=adminPASS=passherePROTOCOL=httpROUTER_IP=192.168.1.1# Port to connect to which will provide the JSON data.PORT=9898while [ 1 ]do    # Grab connected device MAC addresses through router status page.    MACS=$(curl -s --user $USER:$PASS $PROTOCOL://$ROUTER_IP/Status_Wireless.live.asp)    # clear temp JSON file    echo > temp.log    # Get hostname and IP (just in case there is no hostname).    for MAC in $(echo $MACS | grep -oE wl_mac::[a-z0-9]{2}:[a-z0-9]{2}:[a-z0-9]{2}:[a-z0-9]{2}:[a-z0-9]{2}:[a-z0-9]{2} | cut -c 9-);    do        grep 0x /proc/net/arp | awk '{print $1   $4}' | while IFS= read -r line        do        IP=$(echo $line | cut -d' ' -f1)        MACTEMP=$(echo $line | cut -d' ' -f2)        HOST=$(arp -a | grep $IP | cut -d' ' -f1)        # if no hostname exists, just use IP.        if [ $HOST ==  ]        then            HOST=$IP        fi        if [ $MAC == $MACTEMP ]        then            JSON={'hostname' : '$HOST', 'mac_address' : '$MAC'}            echo $JSON >> temp.log        fi        done    done    # Provide the JSON formatted output on $PORT of router.    # This allows one connection before closing the port (connect, receive data, close).    # Port will reopen every 5 minutes with new data as setup in a cron job.    echo -e HTTP/1.1 200 OK\n\n $(cat temp.log) | nc -l -p$PORT >/dev/null    # Wait for 10 seconds and do it all over.    sleep 10doneAnd for some reason when I reboot the router and then try to visit http://192.168.1.1:9898 it just shows a blank page even though I have my android cell phone connected via wifi to the router and the router shows the MAC address on the status page.What should be on that page is all the wireless MAC address that are currently connected to the router and displaying them out in JSON form.
Bash script fails in DD-wrt
bash;shell script;dd wrt