2010-10-25 31 views
14

È possibile utilizzare pastebin (può essere tramite il loro "API" functionality) all'interno degli script della shell bash? Come posso inviare http-post? Come posso recuperare l'URL?Come usare pastebin dallo script di shell?

+0

FYI, pastebin.com è pieno di annunci per chiunque non utilizzi un plug-in del browser appropriato. Si prega di considerare l'utilizzo di un diverso pastebin. http://ix.io/, f'rinstance, entrambi (1) non mostrano annunci, e (2) include le istruzioni per la pubblicazione da grandi shell direttamente sulla home page. –

risposta

9

Il documentation dice che è necessario inviare una richiesta per POST

http://pastebin.com/api_public.php 

e l'unico parametro obbligatorio è paste_code, di tipo stringa è la pasta che si vuole fare.

In caso di successo viene restituito un nuovo URL pastebin.

È possibile eseguire facilmente questa operazione dalla shell bash utilizzando il comando curl.

curl utilizza l'opzione -d per inviare i dati POST all'URL specificato.

Demo:

Questa demo creerà una nuova pasta con il codice:

printf("Hello..I am Codaddict"); 

Dalla tua shell:

$ curl -d 'paste_code=printf("Hello..I am Codaddict");' 'http://pastebin.com/api_public.php' 
http://pastebin.com/598VLDZp 
$ 

Ora se si vede l'URL http://pastebin.com/598VLDZp, è vedrò la mia pasta :)

In alternativa è possibile farlo utilizzando il comando wget che utilizza l'opzione --post-data per inviare i valori POST.

Ho provato questo comando funziona benissimo:

wget --post-data 'paste_code=printf("Hello..I am Codaddict");' 'http://pastebin.com/api_public.php' 
+8

Ora è stato disabilitato, c'è un nuovo Pastebin api – jayunit100

+0

Non funziona più. –

0

Non sono sicuro, ma penso che questa domanda appartiene al superutente. Ad ogni modo ...

È possibile utilizzare wget per inviare i dati POST (tramite l'opzione --post-data o --post-file). Vedere lo man page per ulteriori informazioni.

4

Come pastebin.com chiuso le loro API pubblica, ero alla ricerca di alternative.

Sprunge (http://github.com/rupa/sprunge) è fantastico. Uso:

<command> | curl -F 'sprunge=<-' http://sprunge.us 

o, come lo uso:

alias paste="curl -F 'sprunge=<-' http://sprunge.us" 
<command> | paste 
+0

+1, con l'avvertenza che sarebbe meglio fornire una funzione rispetto ad un alias - le funzioni possono riordinare argomenti, fare logica, essere usati in shell non interattive, ecc. –

5

Inserire il seguente nella vostra .bashrc:

sprunge() { 
    if [[ $1 ]]; then 
    curl -F 'sprunge=<-' "http://sprunge.us" <"$1" 
    else 
    curl -F 'sprunge=<-' "http://sprunge.us" 
    fi 
} 

... e poi si può eseguire:

sprunge filename # post file to sprunge 

... o ...

some_command | sprunge # pipe output to sprunge 
Problemi correlati