È 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?
risposta
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'
Ora è stato disabilitato, c'è un nuovo Pastebin api – jayunit100
Non funziona più. –
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.
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
+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. –
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
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. –