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. 변수가 설정되지 않은 경우 빈 문자열을 보낼 수 있습니다. 그만큼스크립트함수에서 서버를 쿼리하여 사용자 키를 찾는 코드가 포함되어 있지만 해당 함수는 처음에 0이 아닌 값으로 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두 번째 줄을 추가하여 실행될 때 각 줄의 추적을 인쇄하도록 합니다.

관련 정보