gpt4 book ai didi

linux - 无法通过管道传输 wget HTTP header 以进行 grep 处理

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:54:37 27 4
gpt4 key购买 nike

我正在尝试通过对 php 页面的 wget 请求获取相机温度传感器的整数值。
相机有带 dash shell 的 Busybox 1.13.3,所以一些常见的 cmd(如 curl)和数学 POSIX 函数不存在。
我不希望在终端中显示 HTTP header ,但我希望通过页面检索对其进行处理(或只是转储)。
我只想在 shell 中显示数字(在 49 以下的情​​况下)。
这是我到目前为止编写的代码:

#!/bin/sh                                                          
wget -O- /mnt/0/t2 -q "http://127.0.0.1/i2c.php?width=8&bus=1&adr=0x4800"\
2>&1 \
| egrep -i "<data>" | sed 's/[^0-9]*//g'

这是控制台中显示的内容:

# ./tp2.sh                                                                                                              
127.0.0.1 127.0.0.1 - [07/Dec/2014:03:30:36 +0000] "GET /i2c.php?width=8&bus=1&adr=0x4800 HTTP/1.1" 200 188 "-" "Wget"
49

我尝试使用 2>/dev/null 但它也不起作用。

然后我只尝试了代码的 wget 部分,按照这个顺序,将所有内容刷新到/dev/null:
wget -O- -q "http://127.0.0.1/i2c.php?width=8&bus=1&adr=0x4800">/dev/null 2>&1 说明 here ,但我仍然在控制台上收到 HTTP 响应:
127.0.0.1 127.0.0.1 - [07/Dec/2014:14:13:24 +0000] "GET/i2c.php?width=8&bus=1&adr=0x4800 HTTP/1.1"200 188 "-""Wget “

如何强制从控制台输出中隐藏 HTTP header ?

最佳答案

经过多次测试,我能够找到导致显示该消息的原因。 相机安装了 Lighttpd,在 /etc 中的 lighthttp.conf 文件中有一个小选项已被相机更改制造商。
它是访问日志,它跟踪 Web 服务器收到的所有 http 请求。
这是现在的选择:

#### accesslog module
accesslog.filename = "/var/log/lighttpd_access.log"

虽然我发现它指向 /dev/console

现在我正确地只获得了临时值。
非常感谢你们!

关于linux - 无法通过管道传输 wget HTTP header 以进行 grep 处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27339340/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com