我正在尝试记录我的卷曲输出,如下所示:(每 10 秒随机生成一次)
<RTW>
<RESULT>{ "Result": { "something1": 707, "something2": { "array": ["95", "51", "65", "33", "95", "109", "87", "37", "49", "86"] } } }</RESULT>
<DISTRICT>{"0000":"City"}</DISTRICT>
</RTW>
我的命令如下sh /path/to/script.sh 2>&1 | tee /path/to/logfile.txt
问题是我没有记录原始输出,而是记录一些下载统计信息(它也显示在正在运行的终端窗口中)。下载统计中跟踪以下内容:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 249 0 204 100 45 125 27 0:00:01 0:00:01 --:--:-- 125
100 249 0 204 100 45 77 17 0:00:02 0:00:02 --:--:-- 77
等等..
我如何从卷曲中记录(我认为是标准输出)?我尝试过更改该2>&1
部分中的数字等。
我在脚本中的curl命令如下:
curl -k --data "objectID=ID&username=username&password=passwd" url -H "Header"
答案1
您可以使用( ) 选项进行curl
静默、无进度统计(并且将显示错误消息) :-s
--silent
curl -s ...
从man curl
:
-s,--沉默
静音或安静模式。不显示进度表或错误消息。让 Curl 静音。它仍然会输出您要求的数据,甚至可能输出到终端/标准输出,除非您重定向它。
答案2
添加| logger
到curl命令的末尾。
答案3
对我来说获得curl输出的方法是使用该-s
标志并将curl的输出分配给一个变量。
使用您提供的示例,修改如下:
RES="$(curl -k --data "objectID=ID&username=username&password=passwd" url -H "Header")"
#print the result
echo "$RES"