txt 파일을 읽는 코드가 있으며 그 줄을 명령으로 읽어야합니다. 그런 다음 해당 명령의 출력도 한 행씩 다른 명령으로 읽어야합니다. 내 외부 루프는 작동하지만 에코를 사용하여 테스트했지만 중첩 루프는 작동하지 않습니다.
#!/bin/bash
while read p; do
folder="$(aws s3 ls s3://a-bucket/users/ --recursive | grep ${p} | cut -c 32-)"
while read -r line
do
aws s3 cp s3://a-bucket/"$line" 'c:/users/basud/desktop/testerData' --recursive
done <<< "$folder"
done < testIDs.txt
"폴더"로 읽히는 첫 번째 행의 출력은 testIDs.txt의 각 행에 대해 다음과 같습니다.
users/3e8c95b4-c5ee-4edc-954e-6d988d30557e/111BEF99-5AB6-486A-ABD5-A4682CE0D491-LEFT.zip
users/3e8c95b4-c5ee-4edc-954e-6d988d30557e/111BEF99-5AB6-486A-ABD5-A4682CE0D491-RIGHT.zip
경로 이름에 추가하기 위해 "a-bucket /"다음에 "folder"의 각 줄을 aws 명령에 전달하고 싶습니다. 계속 출력이 없습니다. 도와 주셔서 감사합니다.
이를 디버깅하는 한 가지 방법은
—
JakeGould
echo
해당 aws
행 앞에 추가 하여 명령이 어떻게 보이는지 확인할 수 있습니다. 같은 것 echo aws s3 cp s3://a-bucket/"$line" 'c:/users/basud/desktop/testerData' --recursive
.
@choroba 의견을 설명해 주시겠습니까?
—
색종이
@choroba 흥미로운 대답하지만 난 코드를 실행할 때 어떤 주사위 = / 나는 당신의 의견에 "완료"를 없다고 가정하고 내 원래 코드에서 "$ 폴더"를 앞에 하나입니다
—
크리슈나 Basude
done < <(aws s3 ls ...)