我學會了如何下載單個谷歌文檔。但我正在嘗試製作一個腳本,以文本格式下載我的所有數據,然後將它們合併到一個文本文件中。所以,我想知道如何實現下載部分,以便1可以像使用網絡瀏覽器一樣獲取我所有文件的zip文件。這是我的newb腳本來獲取單個文件。希望你可以建議一些調整,使其更有效。如何從shell下載所有的谷歌文檔
#!/bin/bash
token=$(curl -s https://www.google.com/accounts/ClientLogin -d [email protected] -d Passwd=blahblah -d accountType=GOOGLE -d service=writely -d Gdata-version=3.0 |cut -d "=" -f 2)
set $token
wget --header "Gdata-Version: 3.0" --header "Authorization: GoogleLogin auth=$3" "https://docs.google.com/feeds/download/documents/Export?docID=${resourceId}&exportFormat=txt" -O /tmp/${file[$i]}.txt
在這裏,我指定單RESOURCEID,如你所見。我應該只是推動許多resourceId -s在下載鏈接,讓他們全部或有更好的辦法?
您正在使用'set'設置位置參數,但不使用它們。你正在使用一個名爲「file」的數組,但沒有定義它或索引變量「我」(並且沒有似乎暗示的循環)。你的劇本還有更多嗎? – 2010-04-30 16:16:10
是的,有一個小循環,因爲腳本一次下載4個文件,提供4個不同的resourceId-s。不知何故,我必須通過反覆試驗才能使用,我認爲這可以做得更好。這個「標記」是由newline分隔的3個「key = value」對的數組,我只需要這個數組中最後一項。 – Temujin 2010-04-30 16:32:00
最後一個數組項:'$ {token [@]:-1}'(當有負偏移量時需要空格)或第三項:'$ {token [2]}'(零索引)。你可以通過使用最後一個元素語法來消除'cut'。無論「curl」的輸出是「parts = part1 part2 part3」還是「parts = part1 part2 part3」,它都可以工作。你需要同時使用'curl'和'wget'嗎? – 2010-04-30 16:43:16