cURL 응답에 XML 본문이 표시되지 않습니다.

cURL 응답에 XML 본문이 표시되지 않습니다.

rtmpdumpFlash 강의 영상을 좀 더 쉽게 다운로드할 수 있는 bash 스크립트를 작성하려고 합니다. XML 페이지에서 필요한 mp4 URL을 가져오기 위해 cURL을 사용하는 것을 제외하고는 거의 모든 작업을 수행했습니다.

터미널에서 다음 명령을 실행하면 원하는 결과를 얻을 수 있습니다.

curl -s http://amps-web.amps.ms.mit.edu/courses/6/6.046/2017spring/L01/MIT-6.046-lec-mit-0000-2017feb09-1103-L01/settings-flash.xml | grep "rtmp:"

생산하다:

rtmp://flashsvr1.amps.ms.mit.edu/6.046/mp4:2017spring/MIT-6.046-lec-mit-0000-2017feb09-1103-L01.mp4</url> 

(후행 헤더에 대해 알고 있으며 내 bash 스크립트에서 처리됩니다)

그러나 bash 스크립트에서 동일한 명령을 실행하고 출력을 변수에 저장하려고 하면 아무 것도 얻지 못합니다. 결과를 실행 xml=$(curl -s $url)하고 에코하면 헤더가 잔뜩(전부는 아님) 생성되고 그 이상은 생성되지 않습니다.

<camera id="2" cameraX="960" cameraY="0" thumbnailX="960" thumbnailY="0" name="CAM2" selectedName="LIVE 2 
<camera id="3" cameraX="0" cameraY="540" thumbnailX="0" thumbnailY="540" name="CAM3" selectedName="LIVE 3 
<camera id="4" cameraX="960" cameraY="540" thumbnailX="960" thumbnailY="540" name="CAM4" selectedName="LI 
<fullscreenOutButtonImageOver>fallback/assets/btn_fullscreenOff_selected.png</fullscreenOutButtonImageOve 
<fullscreenOutButtonImageDown>fallback/assets/btn_fullscreenOff_selected.png</fullscreenOutButtonImageDow 
<communityRealOutButtonImageNormal>fallback/assets/buttons/community_selected_up.png</communityRealOutBut 
<communityRealOutButtonImageOver>fallback/assets/buttons/community_over.png</communityRealOutButtonImageO 
<communityRealOutButtonImageDown>fallback/assets/buttons/community_down.png</communityRealOutButtonImageD 
<thumbspositionTopButtonImageNormal>fallback/assets/btn_thumbnailPositionTop.png</thumbspositionTopButton 
<thumbspositionBottomButtonImageNormal>fallback/assets/btn_thumbnailPositionBottom.png</thumbspositionBot 
</settings>ge>fallback/assets/affiche.png</landingImage>>ng</thumbnailActive>Progress>geDown>Down>

무슨 일이 일어날지 아는 사람 있나요? 정말 실망스럽습니다. 감사해요!

답변1

데이터에 캐리지 리턴이 있습니다. 필터링하세요.

curl ... | tr -d '\r'

또한 에코할 때 변수를 인용하십시오.

$ echo "$xml"

또는 더 나은 방법은 다음과 같습니다.

$ printf '%s\n' "$xml"

따옴표는 단어 분할을 방지합니다. 토큰화는 명령줄에서 따옴표가 없는 모든 변수에 대해 발생하며 값을 기준으로 해당 줄을 단어로 분할하는 작업이 포함됩니다 $IFS. $IFS기본값은 탭, 공백 및 줄 바꿈입니다.

쉘 매뉴얼의 "단어 분할" 또는 "필드 분할"을 참조하십시오.

관련 정보