在OSX中使用awk直接查询远程页面



我有一个脚本,可以在Cisco路由器的专用门户上自动连接和更新身份验证。它正在工作,看起来像这样:

 while true
 do
    export ssid=$(/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I | awk '/ SSID/ {print substr($0, index($0, $2))}')
    if [ "$ssid" != "SSID_NAME" ]; then # Not SSID_NAME
        sleep 10
    else # SSID_NAME Connected
        if ping -c 1 google.com; then # Connected and everything is OK
            sleep 5
        else # There is no ping
            curl -O http://auth.address/login.html
            var=$(awk -F" '/au_pxytimetag/{print $(NF-1)}' login.html)
            curl -d "uname=guest&pwd=password&au_pxytimetag=$var" http://auth.address/login.html
        fi
    fi
 done

但是我不想存储login.html页面并直接获得变量值,但是当我使用

 var=$(awk -F" '/au_pxytimetag/{print $(NF-1)}' http://auth.address/login.html)

我到了终点站

  awk: can't open file http://auth.address/login.html

我做错了什么?

awk无法获取网页,如果您不想存储login.html,您可以将curl的输出直接重定向到awk,如下所示:

var=$(curl http://auth.address/login.html | awk -F" '/au_pxytimetag/{print $(NF-1)}')

最新更新