resposta de cURL não mostrando corpo de XML

0

Estou tentando escrever um script bash que facilite o uso do rtmpdump para baixar vídeos de palestras em Flash. Eu tenho praticamente todo o resto para trabalhar, exceto para usar cURL para pegar o URL mp4 necessário da página XML.

Quando executo o seguinte comando no meu terminal, obtenho o que quero:

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:"

rendimentos:

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

(estou ciente do cabeçalho à direita, ele é cuidado no meu script)

No entanto, quando eu tento executar o mesmo comando no meu script bash e salvar a saída em uma variável, não recebo nada. Executar apenas xml=$(curl -s $url) e ecoar isso resulta em vários (mas não todos) cabeçalhos, nada mais:

<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>

Alguém sabe o que pode estar acontecendo com isso? É muito frustrante. Obrigado!

    
por garzai 12.02.2017 / 16:39

1 resposta

1

Seus dados têm retornos de carro. Filtrá-los:

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

Além disso, cite sua variável quando fizer eco dela:

$ echo "$xml"

Ou melhor ainda:

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

As citações impedem a divisão de palavras. A divisão de palavras acontece em todas as variáveis não citadas na linha de comando e envolve a divisão delas em palavras com base no valor de $IFS . Por padrão, $IFS é um caractere de tabulação, um caractere de espaço e um caractere de nova linha.

Consulte "Divisão de palavras" ou "Divisão de campos" no manual do seu shell.

    
por 12.02.2017 / 22:53