我试图监视代理服务器的输出以解决问题,为此,我创建了一个使用curl的bash脚本,但是在获取变量中的输出时遇到了麻烦。 / p>
我尝试过使用刻度或括号来进行转义和使用变量的不同方法。
我先用过,但是不能正常工作:
response=$(curl -k -x $i:1234 -U $u:$p -w $outputformat -s -o /dev/null $site | cut -d ' ' -f 2)
因此进行了更改,现在代码如下所示:
response=$(curl\ -k\ -x\ $i:1234\ -U\ $u:$p\ -w\ \"HTTP\ Response:\ \%\{http\_code\}\ \-\ URL:\ \%\{redirect\_url\}\\n\"\ -s\ -o\ /dev/null\ $site\ \|\ cut\ -d\ \'\ \'\ -f\ 2)
if [ "$response" -eq 200 ]; then
((count200++))
echo $count200 > $counter_200
else
((countx0x++))
echo $count0x0 > $counter_x0x
fi
8/22-根据要求更新了代码,我将代码恢复为以前的代码,并且在WaltDe的建议下,删除了-o选项:
echo "Proxy: $i"
echo "Fetching site: $site"
outputformat="\"HTTP Response: %{http_code} - URL: %{redirect_url}\n\""
response=$(curl -k -x $i:$port -U $u:$p -w $outputformat -s $site | cut -d ' ' -f 2)
if [ "$response" -eq 200 ]; then
((count200++))
echo $count200 > $counter_200
else
((countx0x++))
echo $count0x0 > $counter_x0x
fi
这是我看到的错误消息:
./ ptest.sh:第80行:curl -k -x *********:** -U : -w“ HTTP响应:%{http_code}-URL:%{redirect_url} \ n“ -s -o / dev / null https://www.yahoo.com | cut -d''-f 2:没有这样的文件或目录
./ ptest.sh:第82行:[::预期为整数表达式
8/22更新-这是我现在遇到的问题:
代理:************ 提取网站:https://www.yahoo.com html> id =“ atomic” (...) 缩短可读性-html输出 (...) 响应::预期为整数表达式 ./ptest.sh:第83行:[:响应::需要整数表达式
有人能阐明我做错了什么吗?
答案 0 :(得分:1)
您需要删除将输出写入文件的-o选项(在您的情况下为/ dev / null)。这是您应该更新的代码。
preprod = keras.layers.Dot(axes=1, normalize=False)([bet_vec, user_vec])
另一种检查方法是删除管道并将STDERR发送到/ dev / null。这将向您显示正在传递给剪切命令的内容。
如果一切顺利,您应该会看到一些东西。
$ response=$(curl -k -x $i:1234 -U $u:$p -w $outputformat -s $site | cut -d ' ' -f 2)
如果没有任何输出,请删除STDERR重定向并回显返回码。
$ curl -k -x $i:1234 -U $u:$p -s $site 2>/dev/null
如果退出代码不是0,则错误。您可以在手册页中找到错误代码,或者该site的书写方式很好。
否获取响应代码。
$ curl -k -x $i:1234 -U $u:$p -s $site
$ echo $?
0