我最近尝试使用以下代码将粘贴发送到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
-l
api_user_key
auth_user
curl
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
为第二行,以使其在执行时打印每行的跟踪。