2016-04-26 9 views
0
"wget --user-agent=Mozilla/5.0 --save-cookies cookies.txt --post-data 'dir="$dir1"=&file="$file1"' --no-check-certificate http://test.com/mp3/file.php" 

in allem Kommandozeile arbeitet gut, aber in Shell-Skript seines zeigen keine solche Datei oder das Verzeichniswget Postdata keine solche Datei oder das Verzeichnis

wget --user-agenten = Mozilla/5.0 --save- Cookies cookies.txt --post-Daten 'dir = L011c2ljYW5fU2luZ2VyL1N1amF0aGEgSGl0cw === & file = S2FhdHJ1IEthYXRydSAtIElzYWlBcnV2aS5OZXQubXAz' --no-Check-Zertifikat http://test.com/mp3/file.php: Keine solche Datei oder das Verzeichnis

+0

'wget --user-agent = Mozilla/5.0 --save-Cookies cookies.txt --post-data‚dir = "$ dir1" = & file = "$ file1 "'--no-check-certificate" http://test.com/mp3/file.php "' – jDo

+0

gleicher Fehler kommt @jDo –

+1

Dieser Fehler sieht aus wie Sie tatsächlich den Befehl in Anführungszeichen verpackt, wenn Sie versucht haben, es so zu starten die Shell hat es nicht mit Worten geteilt und es ausgeführt. (Versuchen Sie, "wget ​​word word word" mit den Zitaten aus der Shell auszuführen.) Ist das passiert? –

Antwort

0

Ich weiß nicht, ob das doppelte Zitat vor wget ein Formatierungsfehler ("wget --user-a ...) oder tatsächlich Teil Ihres Befehls ist; So oder so, entferne es. Versuchen Sie auch, die URL doppelt anzugeben. Dies funktioniert für mich auf der Kommandozeile und in einem Shell-Skript:

wget --user-agent=Mozilla/5.0 --save-cookies cookies.txt --post-data 'dir="$dir1"=&file="$file1"' --no-check-certificate "http://test.com/mp3/file.php" 

ein Skript Ausführen den Befehl enthält:

[email protected]:~$ sh wget_script.sh 
--2016-04-26 14:28:42-- http://test.com/mp3/file.php 
Resolving test.com (test.com)... 69.172.200.235 
Connecting to test.com (test.com)|69.172.200.235|:80... connected. 
HTTP request sent, awaiting response... 302 Moved Temporarily 
Location: https://www.test.com/ [following] 
--2016-04-26 14:28:42-- https://www.test.com/ 
Resolving www.test.com (www.test.com)... 69.172.200.235 
Connecting to www.test.com (www.test.com)|69.172.200.235|:443... connected. 
HTTP request sent, awaiting response... 200 OK 
Length: unspecified [text/html] 
Saving to: ‘file.php’ 

    [ <=>                           ] 1,557  --.-K/s in 0s  

2016-04-26 14:28:42 (92.4 MB/s) - ‘file.php’ saved [1557] 

[email protected]:~$ 
+0

Ort: http://test.com/mp3//load/v*%F5/~)^[folgende] Warnung: Wildcards in HTTP nicht unterstützt. –

+0

dir1 = L011c2ljYW5fU2luZ2VyL1N1amF0aGEgSGl0cw == Datei2 = S2FhdHJ1IEthYXRydSAtIElzYWlBcnV2aS5OZXQubXAz –

+0

im nur mit zwei varaibles oben Kommentar –

-1

Vielleicht Weg der Zugabe von wget helfen:

which wget 

wird Rückgabe zB /usr/bin/wget. Versuchen Sie, diesen Pfad zu Ihrer Befehlszeile hinzuzufügen.

+0

Dies ist nicht das Problem.'wget' wird gefunden und läuft, aber OP gibt entweder eine ungültige URL (durch den Versuch, Globbing zu verwenden) weiter oder wird auf eine ungültige URL umgeleitet – jDo

+0

@jDo Vielleicht hast du recht, doch das OP ist zu entscheiden, was hilfreich ist. In jedem Fall ist die Verwendung des vollständigen Pfads für Befehle eine gute Übung in Shell-Skripten. –

+0

ich versuchte '/ usr/bin/wget' gleiche Ausgabe .. –

0

Definieren Sie Ihre Variable auch innerhalb des Skripts. (Dir1 = und file =)

#!/bin/bash 

dir1="bla" 
file="blabl.bla" 

wget --user-agent=Mozilla/5.0 --save-cookies cookies.txt --post-data 'dir="$dir1"=&file="$file1"' --no-check-certificate http://test.com/mp3/file.php