更改代码以将参数发送到 API - Bash - Pastebin

更改代码以将参数发送到 API - Bash - Pastebin

我最近尝试使用以下代码将粘贴发送到pastebin.com:

https://github.com/mefuckin/pastebin-shell/blob/master/pbin

我注意到该脚本似乎没有发送 api_user_key。第 183 行列出了它:

--data "api_user_key=$api_user_key" \

所以我认为这只是指定其值的问题,如:

api_user_key="VALUE HERE"

然后将其发送到 API。但是,我不确定这部分代码的作用(从 174 开始的部分代码):

[ $logintopastebin -ne 0 ] && auth_user
api_paste_code=$( cat - )
curl -0 --show-error \
    --data "api_dev_key=$api_dev_key" \
    --data "api_option=paste" \
    --data "api_paste_code=$api_paste_code" \
    --data "api_paste_format=$api_paste_format" \
    --data "api_paste_private=$api_paste_private" \
    --data "api_paste_expire_date=$api_paste_expire_date" \
    --data "api_user_key=$api_user_key" \
    --data-urlencode "api_paste_name=$api_paste_name" \
    --data-urlencode "api_paste_code=$api_paste_code" \
        "$api_url/api_post.php"

这部分代码是否意味着所有这些参数都将发送到 API?

答案1

该代码确实发送了api_user_key.如果未设置变量,它可能会发送空字符串。这脚本包含通过在函数中查询服务器来查找用户密钥的代码,但仅当您在开头设置为非零值或者传递选项之一或在命令行上时auth_user,才会调用该函数。您可以通过在调用之后手动设置变量来覆盖该值,或者在调用之前而不是调用之前手动设置变量,例如logintopastebin-u-lapi_user_keyauth_usercurl

api_user_key=$(cat ~/.passwords/pastebin/api_user_key)
if [ -z "$api_user_key" ] && [ "$logintopastebin" -eq 0 ]; then
  auth_user
fi
api_paste_code=$( cat - )
curl -0 --show-error \

如果您不明白脚本在做什么,请添加set -x为第二行,以使其在执行时打印每行的跟踪。

相关内容