이것이 가능한지조차 확실하지 않습니다. 파일에서 다른 값을 사용하여 컬링할 수 있는 루프를 만들려고 합니다.
for i in `cat id`;
do curl -X POST 'https:/myurl \
--header 'X-XX-Authorization: XX' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'ACS-Licensing-Ack: XXXX' \
--header 'Authorization: Bearer XXXXX' \
--data-urlencode 'XXID=`find * -name $i`'
done
나는 응답을 받는다
{"code":"400-bad-request","message":"XX app with ID `find * -name $i` not found"}
이전에 캡처한 $i 값을 --data-urlencode 필드에 어떻게 넣나요? 내 ID 파일은 매우 간단하며 아래와 같은 숫자가 포함되어 있습니다. 1234 23232 32323 어떤 도움이라도 대단히 감사하겠습니다. 감사해요.
이것은 내 ID 파일입니다. 기본적으로 숫자 목록입니다.
1761
1762
1763
1764
1765
그래서 내 최종 목표는 첫 번째 컬 요청이 --data-urlencode 'XXID=1761'을 수행하고 두 번째 요청이 --data-urlencode 'XXID=1762'를 수행하고 세 번째 요청이 --data를 수행하는 루프를 입력하는 것입니다. -urlencode 'XXID=1763' 등
답변1
'
변수 사이에 있는 모든 내용은 리터럴 텍스트로 처리되고 셸에서 확장되지 않으므로 변수에 작은따옴표를 사용할 수 없습니다 . 대신 큰따옴표를 사용하십시오 "
.
또한 find
대신 파일을 검색하는 유틸리티존재하다문서.
다음이 작동합니다.
#!/bin/bash
for line in $(cat ./id)
do
curl -X POST 'https:/myurla \
--header 'X-XX-Authorization: XX' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'ACS-Licensing-Ack: XXXX' \
--header 'Authorization: Bearer XXXXX' \
--data-urlencode XXID="$line"
done
id
파일에 각 줄에서 1씩 증가하는 숫자만 포함되어 있는 경우 of를 사용하여 일련의 숫자를 seq
만들 수 있습니다.{..}
for num in {1761..1765}
do
echo $num
done
for num in $(seq 1761 1765)
do
echo $num
done