最近、次のコードを使用して貼り付けを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
実行時に各行のトレースを印刷するように2行目に追加してください。