簡體   English   中英

在Mac Terminal中正確執行多個(wget)命令?

[英]Executing multiple (wget) commands in Mac Terminal properly?

我試圖在終端上執行一堆重復的命令。

命令如下所示:

wget 'http://api.tiles.mapbox.com/v3/localstarlight.hl2o31b8/-180,52,9/1280x1280.png' -O '/Volumes/Alaya/XXXXXXXXX/Downloads/MapTiles/Tile (52.-180) 0.png' \ 
wget 'http://api.tiles.mapbox.com/v3/localstarlight.hl2o31b8/-177,52,9/1280x1280.png' -O '/Volumes/Alaya/XXXXXXXXX/Downloads/MapTiles/Tile (52.-177) 1.png' \

如果我將整個列表復制到Terminal中,它將執行所有操作,但似乎匆忙完成,以至於有些僅被部分下載,而有些則完全丟失。 似乎並沒有一個接一個地等待它們,直到每個完成為止,然后再嘗試下一個。

我嘗試將它們的整個列表放入一個shell腳本中並運行它,但是由於某種原因,它似乎下載了所有內容,但只生成一個文件,然后查看輸出,似乎是試圖將每個文件保存在相同的文件名下:

2014-03-29 09:56:31 (4.15 MB/s) - `/Volumes/Alaya/XXXXXXXX/Downloads/MapTiles/Tile (52.180) 120.png' saved [28319/28319]

    --2014-03-29 09:56:31--  http://%20%0Dwget/
    Resolving  \rwget... failed: nodename nor servname provided, or not known.
    wget: unable to resolve host address ` \rwget'
    --2014-03-29 09:56:31--  http://api.tiles.mapbox.com/v3/localstarlight.hl2o31b8/171,52,9/1280x1280.png
    Reusing existing connection to api.tiles.mapbox.com:80.
    HTTP request sent, awaiting response... 200 OK
    Length: 33530 (33K) [image/jpeg]
    Saving to: `/Volumes/Alaya/XXXXXXXX/Downloads/MapTiles/Tile (52.180) 120.png'

    100%[======================================>] 33,530      --.-K/s   in 0.008s  

    2014-03-29 09:56:31 (3.90 MB/s) - `/Volumes/Alaya/XXXXXXXX/Downloads/MapTiles/Tile (52.180) 120.png' saved [33530/33530]

    --2014-03-29 09:56:31--  http://%20%0Dwget/
    Resolving  \rwget... failed: nodename nor servname provided, or not known.
    wget: unable to resolve host address ` \rwget'
    --2014-03-29 09:56:31--  http://api.tiles.mapbox.com/v3/localstarlight.hl2o31b8/174,52,9/1280x1280.png
    Reusing existing connection to api.tiles.mapbox.com:80.
    HTTP request sent, awaiting response... 200 OK
    Length: 48906 (48K) [image/jpeg]
    Saving to: `/Volumes/Alaya/XXXXXXXX/Downloads/MapTiles/Tile (52.180) 120.png'

    100%[======================================>] 48,906      --.-K/s   in 0.01s   

    2014-03-29 09:56:31 (4.88 MB/s) - `/Volumes/Alaya/XXXXXXXX/Downloads/MapTiles/Tile (52.180) 120.png' saved [48906/48906]

    --2014-03-29 09:56:31--  http://%20%0Dwget/
    Resolving  \rwget... failed: nodename nor servname provided, or not known.
    wget: unable to resolve host address ` \rwget'
    --2014-03-29 09:56:31--  http://api.tiles.mapbox.com/v3/localstarlight.hl2o31b8/177,52,9/1280x1280.png
    Reusing existing connection to api.tiles.mapbox.com:80.
    HTTP request sent, awaiting response... 200 OK
    Length: 45644 (45K) [image/jpeg]
    Saving to: `/Volumes/Alaya/XXXXXXXX/Downloads/MapTiles/Tile (52.180) 120.png'

    100%[======================================>] 45,644      --.-K/s   in 0.01s   

    2014-03-29 09:56:31 (4.36 MB/s) - `/Volumes/Alaya/XXXXXXXX/Downloads/MapTiles/Tile (52.180) 120.png' saved [45644/45644]

因此,它將每個文件保存為以下名稱: Tile(52.180)120.png

請注意,如果我分別輸入每個命令,它不會執行此操作...因此,我不明白為什么這樣做。

有人可以告訴我如何執行此命令列表,以便正確執行每個命令嗎?

謝謝!

您的文件應如下所示:

#!/bin/bash
wget -q 'http://api.tiles.mapbox.com/v3/localstarlight.hl2o31b8/-180,52,9/1280x1280.png' -O 'a.png'
wget -q 'http://api.tiles.mapbox.com/v3/localstarlight.hl2o31b8/-177,52,9/1280x1280.png' -O 'b.png'

但是...在每行wget行的末尾都有一個反斜杠,這是長行的延續字符,您不需要。 去掉它。

本質上,您是在要求wget獲取文件,然后再獲取另一個名為wget的文件,然后再獲取另一個文件,再獲取另一個文件。 您的腳本僅執行一個wget第一個。 由於有延續字符,所有其他wget命令都被視為第一個wget參數。

您正在執行此操作:

wget URL file wget URL file wget URL file

引用您發布的日志:

http://%20%0Dwget/

這表明您的腳本包含CR + LF行尾。 在執行腳本之前刪除它們:

sed $'s/\r//' scriptname

要么

tr -d '\r' < scriptname

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM