컬 스크립트에서 오프셋을 늘리는 방법은 무엇입니까?
내 스크립트는 다음과 같습니다
#!/bin/bash
curl -a --silent --header "api-key: 4444444455" --header "accept: application/xml" --header "cache-control: no-store" "https://gghghghg.com/api/invoices?supplier%5Bid%5D%5Bnot_eq%5D=109789%3F&limit=50&offset=150" > /bi01/In_API_Call_Data.txt 2>&1
exit 0
답변1
나는 당신이 원하는 것 같아요오프셋150에서 155로 바꾸고 더 잘 설명할 수 있도록 명령을 줄입니다.
당신은 추가할 수 있습니다오프셋for
루프를 사용 하고 변수를 i
다음과 같이 사용하십시오.오프셋:
for i in {150..155}; do
curl --header "kk: vv" "http://example.com/path&offset=$i" >outfile$i 2>&1
done
노트:
- 모든 사람의 모든 답글을 보관하고 싶다고 가정하고 을 입력합니다
$i
.>outfile$i
공격.$i
파일 이름이 없으면 모든curl
호출은 동일한 파일에 쓰고 덮어쓰며 최종curl
결과만 유지됩니다. >outfile$i 2>&1
대신 사용할 수 있지만&>outfile$i
일부 (이전) 쉘에서는 작동하지 않을 수 있습니다.for
for ((i=150; i<=155; ++i)); do
같은 목적을 달성하기 위해 like 또는 를 사용할 수 있습니다for i in $(seq 150 155); do
. 일부 양식은 더 읽기 쉽고 친숙할 수 있지만 이 경우에는 차이가 없습니다.이와 같은 경우 중괄호 확장을 사용하고 다음에 대한 여러 URL을 만드는 것이 더 간단합니다
curl
.curl --header "kk: vv" "http://example.com/path&offset="{150..155} >>outfile 2>&1
그러나 각 응답을 별도의 파일에 쓸 수는 없습니다. 대신에
>>
.
답변2
#!/bin/bash
for i in {0..150,160}; do
curl -asH "api-key: 4444444455" -H "accept: application/xml" -H "cache-control: no-store" "https://gghghghg.com/api/invoices?supplier%5Bid%5D%5Bnot_eq%5D=109789%3F&limit=50&offset="$i >/bi01/In_API_Call_Data.txt 2>&1
done
exit 0
간단한 for
루프를 사용하여 URL을 변경할 수 있습니다. 위의 예에서는 모든 숫자를 0
및 에 가져옵니다 .150
160