/ / Problem mit Unix-Bash-Skript, das in Mp3-URLs aus .TXT-Datei liest, dann Dateien herunterlädt und umbenennt - bash, unix, url, mp3

Problem mit Unix-Bash-Skript, das in Mp3-URLs aus .TXT-Datei liest, dann Dateien herunterladen und umbenennen - bash, unix, url, mp3

Ich habe früher Hilfe mit einem Skript benötigtLesen Sie eine Liste von ".mp3" URLs aus einer Textdatei ("URLs.txt"), laden Sie jede Datei herunter, benennen Sie sie in numerischer Reihenfolge (1,2,3 ...) um und speichern Sie sie im "URLs" Ordner auf dem Desktop :

URLs.txt
http: // ...34566.mp3
http: // ...234.mp3
http: // ...126567.mp3

...wird...

URLs Desktop-Ordner
1.mp3
2.mp3
3.mp3

Kurz darauf erhielt ich folgende Antwort in Unix bash (für den Einsatz in Automator):

#!/bin/bash
mkdir -p ~/Desktop/URLs
n=1
while read mp3; do
curl "$mp3" > ~/Desktop/URLs/$n.mp3
((n++))
done < ~/Desktop/URLs.txt

Obwohl das Skript einwandfrei funktioniert, werden Dateien nur im Bereich von "47.mp3" bis "49.mp3" heruntergeladen. Das Skript hört nicht auf, es lädt einfach nichts über diesen Bereich hinaus ...

Ich bin sehr neu in Unix bash, und entschuldige meine Ignoranz, aber ist es möglich, dass es ein "50 Limit" auf Skript oder Webseite gibt?

Ich bin nicht sicher, wie viele URLs meine Textdatei hat, aber es ist weit über 49.

Ich habe die Textdatei durchgesehen, um sicherzustellen, dass alle URL-Pfade korrekt sind und alles in Ordnung zu sein scheint ...

Auch heruntergeladen 47 - 52 manuell, um sicherzustellen, dass sie tatsächlich heruntergeladen werden können - was sie sind.

Antworten:

0 für die Antwort № 1

Nein, es gibt kein inhärentes Shell-Skript-Limit, das Sie treffen.

Ist es möglich, dass der Webserver, von dem du die MP3s herunterlädst, einen Rate Limiter hat, der bei 50 Downloads in zu kurzer Zeit startet? In diesem Fall müssen Sie Ihr Skript verlangsamen.

Probieren Sie diese Modifikation aus und sehen Sie, was passiert, wenn Sie bei der 50. MP3 beginnen:

#!/bin/bash
mkdir -p ~/Desktop/URLs
n=1
while read mp3; do
((n >= 50)) && curl "$mp3" > ~/Desktop/URLs/$n.mp3
((n++))
done < ~/Desktop/URLs.txt

Wenn Sie langsamer werden möchten, fügen Sie a hinzu sleep Anruf in die Schleife.