更改程式碼以將參數發送到 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為第二行,以使其在執行時列印每行的追蹤。

相關內容