Shell-Script
cURL 響應未顯示 XML 正文
我正在嘗試編寫一個 bash 腳本,使其更易於
rtmpdump
用於下載 Flash 講座影片。除了使用 cURL 從 XML 頁面獲取必要的 mp4 URL 之外,我已經完成了幾乎所有其他工作。當我在終端中執行以下命令時,我得到了我想要的:
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>
有誰知道這可能會發生什麼?這很令人沮喪。謝謝!
您的數據中有輸入。過濾掉它們:
curl ... | tr -d '\r'
另外,在您回顯它時引用您的變數:
$ echo "$xml"
甚至更好:
$ printf '%s\n' "$xml"
引用可以防止分詞。單詞拆分發生在命令行上所有未引用的變數上,並且涉及根據
$IFS
.$IFS
預設情況下是一個製表符和一個空格字元和一個換行符。請參閱您的 shell 手冊中的“字拆分”或“欄位拆分”。