2012-05-02 10 views
7

voglio fare uno script bash che deve utilizzare wget e correre la sua uscita con bash come questo:wget file e inviarlo per colpire

wget -q -O - http://pastebin.com/raw.php?i=VURksJnn | bash 

Il file pastebin è uno script di test, ma questo comanda spettacoli me: "Unknown command" (forse a causa di nuove righe) e "Unexpected end of file", e non so perché.

Mi manca qualcosa?

risposta

5

Lo script ha terminazioni di linea DOS.

Se si converte la fine riga a fine riga Unix, funziona benissimo:

$ tr -d '\r' <raw.php\?i\=VURksJnn> script 
$ cat script | bash 
Test script 
You're not root 
End test 
$ 
+2

sarnold ha ragione. 'wget -q -O -" http://pastebin.com/raw.php?i=VURksJnn "| dos2unix | bash' funziona bene per me. Uscite ' Test script Non sei root End test ' – dpp

+1

puoi ancora farlo in un colpo solo: 'curl http://script.foo | tr -d '\ r' | bash' (o 'wget .. -O -') – c00kiemon5ter

+2

Sì, ma non sto per eseguire qualcosa da qualcun altro senza prima leggerlo. Da qui i miei ulteriori passaggi. :) – sarnold

-1

Per cominciare può risparmiare scaricato, wgeted, file localmente e gestita come bash nomefile. Coz i seguenti lavori per me cat - | bash

+0

Grazie, ma la domanda era sul piping dello script, anche se non è menzionato esplicitamente. – Max13