파일의 값을 컬 명령으로 반복해 보세요.

파일의 값을 컬 명령으로 반복해 보세요.

이것이 가능한지조차 확실하지 않습니다. 파일에서 다른 값을 사용하여 컬링할 수 있는 루프를 만들려고 합니다.

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

관련 정보