내 컬 출력을 다음과 같이 기록하려고 합니다. (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
등..
컬(stdout이라고 가정)에서 어떻게 로그인하나요? 2>&1
섹션 등의 숫자를 변경해 보았습니다 .
스크립트의 내 컬 명령은 다음과 같습니다.
curl -k --data "objectID=ID&username=username&password=passwd" url -H "Header"
답변1
자동으로 진행되지 않는 통계 에 대해 ( ) 옵션을 사용할 수 있습니다 curl
(오류 메시지가 표시됨).-s
--silent
curl -s ...
에서 man curl
:
-s, --침묵
무음 또는 조용한 모드. 진행률 표시기나 오류 메시지가 표시되지 않습니다. 음소거 컬. 리디렉션하지 않는 한 요청한 데이터를 터미널/표준 출력으로 계속 출력합니다.
답변2
| logger
컬 명령 끝에 추가되었습니다 .
답변3
컬의 출력을 얻는 방법은 해당 -s
플래그를 사용하고 컬의 출력을 변수에 할당하는 것입니다.
제공한 예제를 사용하여 다음과 같이 수정합니다.
RES="$(curl -k --data "objectID=ID&username=username&password=passwd" url -H "Header")"
#print the result
echo "$RES"