如何从shell脚本中使用pastebin?

lit*_*tro 22 url bash shell http pastebin

是否可以在bash shell脚本中使用pastebin(可能通过其"API"功能)?我如何发送http-post?如何取回网址?

use*_*758 11

随着pastebin.com关闭了他们的公共API,我一直在寻找替代方案.

Sprunge(http://github.com/rupa/sprunge)很棒.用法:

<command> | curl -F 'sprunge=<-' http://sprunge.us
Run Code Online (Sandbox Code Playgroud)

或者,当我使用它时:

alias paste="curl -F 'sprunge=<-' http://sprunge.us"
<command> | paste
Run Code Online (Sandbox Code Playgroud)

  • 收到“500 Internal Server error”此外,上次 github 提交是在 2014 年 (2认同)

cod*_*ict 7

文件说,你需要提交POST给请求

http://pastebin.com/api_public.php
Run Code Online (Sandbox Code Playgroud)

并且唯一的必需参数是paste_code,string类型是您要制作的粘贴.

成功后,pastebin将返回新的URL.

您可以使用该命令从bash shell轻松完成此操作curl.

curl使用该-d选项将POST数据发送到指定的URL.

演示:

这个演示将使用以下代码创建一个新的粘贴:

printf("Hello..I am Codaddict");
Run Code Online (Sandbox Code Playgroud)

从你的shell:

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

现在,如果您看到URL http://pastebin.com/598VLDZp,您将看到我的粘贴:)

或者,您可以使用wget使用该选项--post-data发送POST值的命令来执行此操作.

我试过这个命令它工作正常:

wget --post-data 'paste_code=printf("Hello..I am Codaddict");' 'http://pastebin.com/api_public.php'
Run Code Online (Sandbox Code Playgroud)

  • 这已经被禁用,有一个新的Pastebin api (14认同)

Cha*_*ffy 5

将以下内容放入您的.bashrc

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

...然后你可以运行:

sprunge filename # post file to sprunge
Run Code Online (Sandbox Code Playgroud)

...或者...

some_command | sprunge # pipe output to sprunge
Run Code Online (Sandbox Code Playgroud)