2010-10-25 2 views
14

Est-il possible d'utiliser pastebin (peut-être via leur "API" functionality) dans des scripts shell bash? Comment envoyer un http-post? Comment puis-je récupérer l'URL?Comment utiliser pastebin à partir d'un script shell?

+0

FYI, pastebin.com est plein d'annonces pour toute personne n'utilisant pas un plugin de navigateur approprié. S'il vous plaît envisager d'utiliser un pastebin différent. http://ix.io/, f'rinstance, les deux (1) ne montrent pas d'annonces, et (2) comprend des instructions pour poster à partir de coquillages majeurs directement sur la page d'accueil. –

Répondre

9

Le documentation dit que vous devez présenter une demande à POST

http://pastebin.com/api_public.php 

et le seul paramètre obligatoire est paste_code, de type chaîne est la pâte que vous voulez faire.

En cas de succès, une nouvelle URL pastebin sera renvoyée.

Vous pouvez facilement le faire depuis votre shell bash en utilisant la commande curl.

curl utilise l'option -d pour envoyer les données POST à l'URL spécifiée.

Démo:

Cette démo va créer une nouvelle pâte avec le code:

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

A partir de votre shell:

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

Maintenant, si vous voyez l'URL http://pastebin.com/598VLDZp, vous vais voir ma pâte :)

Alternativement vous pouvez le faire en utilisant la commande wget qui utilise l'option --post-data pour envoyer POST valeurs.

J'ai essayé cette commande, il fonctionne très bien:

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

Ceci a maintenant été désactivé, il y a une nouvelle API Pastebin – jayunit100

+0

Ne marche plus. –

0

Je ne suis pas sûr mais je pense que cette question appartient à superuser. De toute façon ...

Vous pouvez utiliser wget pour envoyer des données POST (via l'option --post-data ou --post-file). Voir le man page pour plus d'informations.

4

Comme pastebin.com fermé leur api public, je cherchais des solutions de rechange.

Sprunge (http://github.com/rupa/sprunge) est génial. Utilisation:

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

ou, comme je l'utilise:

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

+1, avec la mise en garde qu'il serait préférable de fournir une fonction qu'un alias - les fonctions peuvent réorganiser les arguments, faire de la logique, être utilisées dans des coques non interactives, etc. –

5

Mettez ce qui suit dans votre .bashrc:

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

... et vous pouvez exécuter:

sprunge filename # post file to sprunge 

... ou ...

some_command | sprunge # pipe output to sprunge 
Questions connexes