From 6317079f208c448467ef23304bc82c75c78dadeb Mon Sep 17 00:00:00 2001 From: Zhong Lufan Date: Mon, 20 Jun 2022 03:26:14 +0800 Subject: [PATCH] Replacing strings using bash built-in method --- AliyunOpenApiSDK.sh | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/AliyunOpenApiSDK.sh b/AliyunOpenApiSDK.sh index 8738ff7..0fa4b11 100755 --- a/AliyunOpenApiSDK.sh +++ b/AliyunOpenApiSDK.sh @@ -66,7 +66,7 @@ aliapi_rpc() { done local _signature - _signature=$(_aliapi_signature_rpc "$_http_method" "$_query_str") + _signature=$(_aliapi_signature_rpc "$_http_method" "${_query_str:0:-1}") _query_str+="Signature=$(_aliapi_urlencode "$_signature")" local _curl_out _http_code _http_url="https://$_http_host/?$_query_str" _curl_out=$(mktemp) @@ -84,9 +84,11 @@ _aliapi_check_vars() { _aliapi_signature_rpc() { local -u _http_method=$1 - local _str _query_str _sign_str - _str=$(LC_ALL=C echo -n "$2" | tr "&" "\n" | sort) - _query_str=$(echo -n "$_str" | tr "\n" "&") + local _str=$2 _query_str _sign_str + local _newline=' +' + _str=$(LC_ALL=C sort <<< "${_str//&/$_newline}") + _query_str=${_str//$_newline/&} _sign_str="$_http_method&$(_aliapi_urlencode "/")&$(_aliapi_urlencode "$_query_str")" echo -n "$_sign_str" | openssl sha1 -hmac "$_AliAccessKeySecret&" -binary | openssl base64 -e }