You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by GitBox <gi...@apache.org> on 2022/10/10 13:09:25 UTC

[GitHub] [doris] hello-stephen opened a new pull request, #13259: test benchmark pipeline

hello-stephen opened a new pull request, #13259:
URL: https://github.com/apache/doris/pull/13259

   # Proposed changes
   
   Issue Number: close #xxx
   
   ## Problem summary
   
   Describe your changes.
   
   ## Checklist(Required)
   
   1. Does it affect the original behavior: 
       - [ ] Yes
       - [ ] No
       - [ ] I don't know
   2. Has unit tests been added:
       - [ ] Yes
       - [ ] No
       - [ ] No Need
   3. Has document been added or modified:
       - [ ] Yes
       - [ ] No
       - [ ] No Need
   4. Does it need to update dependencies:
       - [ ] Yes
       - [ ] No
   5. Are there any changes that cannot be rolled back:
       - [ ] Yes (If Yes, please explain WHY)
       - [ ] No
   
   ## Further comments
   
   If this is a relatively large or complex change, kick off the discussion at [dev@doris.apache.org](mailto:dev@doris.apache.org) by explaining why you chose the solution you did and what alternatives you considered, etc...
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] github-actions[bot] commented on pull request #13259: test benchmark pipeline

Posted by GitBox <gi...@apache.org>.
github-actions[bot] commented on PR #13259:
URL: https://github.com/apache/doris/pull/13259#issuecomment-1274066196

   #### `sh-checker report`
   
   To get the full details, please check in the [job]("https://github.com/apache/doris/actions/runs/3224086064") output.
   
   <details>
   <summary>shellcheck errors</summary>
   
   ```
   
   'shellcheck ' returned error 1 finding the following syntactical issues:
   
   ----------
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 11:
   check=$(lsof -i:$port|awk '{print $2}'|wc -l)
                   ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   check=$(lsof -i:"$port"|awk '{print $2}'|wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 12:
   if [ "check$check" != "check0" ];then
      ^---------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
              ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   if [[ "check${check}" != "check0" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 13:
       if [ "check"${case_level} == "check" ];then
          ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                   ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       if [[ "check""${case_level}" == "check" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 14:
           check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep deleted||wc -l)
                            ^-- SC2046 (warning): Quote this to prevent word splitting.
                            ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                     ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                     ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                              ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                              ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check_res=$(pwdx $(lsof -i:"$port"|grep -v PID|awk '{print $2}')|grep $env_name|grep deleted||wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 16:
           check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep $case_level|grep deleted||wc -l)
                            ^-- SC2046 (warning): Quote this to prevent word splitting.
                            ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                     ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                     ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                              ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                              ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                             ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                             ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check_res=$(pwdx $(lsof -i:"$port"|grep -v PID|awk '{print $2}')|grep $env_name|grep $case_level|grep deleted||wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 18:
       if [ "check$check_res" != "check0" ];then
          ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                  ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ "check${check_res}" != "check0" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 19:
           be_pid=(`lsof -i:$port|grep -v PID|awk '{print $2}'`)
                   ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                   ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                            ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                            ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           be_pid=($(lsof -i:"$port"|grep -v PID|awk '{print $2}'))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 20:
           echo "Detected residual processes: ${be_pid}"
                                              ^-------^ SC2128 (warning): Expanding an array without an index only gives the first element.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 21:
           echo "kill residual processes: kill -9 ${be_pid}"
                                                  ^-------^ SC2128 (warning): Expanding an array without an index only gives the first element.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 22:
           kill -9 $be_pid
                   ^-----^ SC2128 (warning): Expanding an array without an index only gives the first element.
                   ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           kill -9 "$be_pid"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 29:
       while [ 1 -eq 1 ]
             ^---------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                 ^-^ SC2050 (warning): This expression is constant. Did you forget the $ on a variable?
   
   Did you mean: 
       while [[ 1 -eq 1 ]]
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 32:
           res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
                ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                              ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                            ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                    ^-------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^---^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files?per_page="$per_page"\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 35:
           if [ ${res_len} -ne 0 ];then
              ^------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           if [[ "${res_len}" -ne 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 36:
               let page+=1
               ^---------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 38:
               files=(${res[@]} ${files[*]})
                      ^-------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
                                ^---------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 54:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 58:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 61:
   	file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 62:
           file_type=$(echo $file|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
                            ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                            ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_type=$(echo "$file"|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 64:
   	if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]];then
                 ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                     ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                           ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ ${file_type} == "cpp" || ${file_type} == "c" || ${file_type} == "java" || ${file_type} == "py" || ${file_type} == "h" || ${file_type} == 'js' ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 68:
   	if [[ "check$file_dir" == "check${module}" ]];then
                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ "check${file_dir}" == "check${module}" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 69:
               let module_file+=1
               ^----------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 89:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 98:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 101:
   	echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 102:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 103:
   	if [[ $file_dir == "docs" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ ${file_dir} == "docs" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 104:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 106:
           if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]];then
                  ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                              ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ "${file}" =~ "docs/zh-CN/docs/sql-manual/" || "${file}" =~ "docs/en/docs/sql-manual/" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 107:
               let doc_sql_manual_num+=1
               ^-----------------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 120:
       echo "doc_num: $doc_num"
                      ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "doc_num: ${doc_num}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 121:
       echo "file_nums: $file_nums"
                        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "file_nums: ${file_nums}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 122:
       echo "doc_sql_manual_num: $doc_sql_manual_num"
                                 ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "doc_sql_manual_num: ${doc_sql_manual_num}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 123:
       if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} && ${doc_sql_manual_num} -eq 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 138:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 146:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 148:
           echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 150:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 151:
           if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "be" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 152:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 156:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 171:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 179:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 181:
           echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 183:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 184:
           if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "fe" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 185:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 189:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 200:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 203:
   	    check_removed_change_file $2 "be"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "be"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 205:
   	    check_all_change_files_is_under_be $2
                                                  ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_be "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 207:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 208:
   	    echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 209:
   	    res=`expr $check_1 \* $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    res=$(expr "$check_1" \* $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 210:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 213:
   	    check_removed_change_file $2 "fe"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "fe"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 215:
   	    check_all_change_files_is_under_fe $2
                                                  ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_fe "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 217:
               res=`expr $check_1 \* $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
               res=$(expr "$check_1" \* $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 218:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 219:
   	    echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 220:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 223:
   	    check_removed_change_file $2 "docs"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "docs"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 225:
   	    check_all_change_files_is_under_doc $2
                                                   ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_doc "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 227:
               res=`expr $check_1 + $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                    ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                    ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
               res=$(expr "$check_1" + $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 228:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 229:
               echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
               echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 230:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 238:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 6:
   echo `date "+%Y-%m-%d %H:%M:%S"` "start to clear oudate file!"
        ^-------------------------^ SC2046 (warning): Quote this to prevent word splitting.
        ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
   
   Did you mean: 
   echo $(date "+%Y-%m-%d %H:%M:%S") "start to clear oudate file!"
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 7:
   cd /home/work/teamcity/TeamCity/piplineWork/Compile/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/Compile/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 8:
   find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                         ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 9:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   ^--^ SC2103 (info): Use a ( subshell ) to avoid having to cd back.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 10:
   cd /home/work/teamcity/TeamCity/piplineWork/feUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/feUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 11:
   find /home/work/teamcity/TeamCity/piplineWork/feUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/feUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 12:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 13:
   cd /home/work/teamcity/TeamCity/piplineWork/beUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/beUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 14:
   find /home/work/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 15:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 16:
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 17:
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                         ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 18:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 19:
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 20:
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_compile.sh line 3:
   id=$(echo $RANDOM)
      ^-------------^ SC2116 (style): Useless echo? Instead of 'cmd $(echo foo)', just use 'cmd foo'.
             ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
             ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   id=$(echo "$RANDOM")
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_compile.sh line 5:
   docker run -i --rm --name doris-compile-$id -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v $work_path:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
                                           ^-^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                           ^-^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                                    ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   docker run -i --rm --name doris-compile-"$id" -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v $work_path:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 40:
       docker_name="doris-compile-"$(echo $RANDOM)
                                  ^-- SC1078 (warning): Did you forget to close this double quoted string?
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 42:
       cmd="docker run -i --rm --name doris-compile-$id -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v %system.teamcity.build.workingDir%:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
           ^-- SC1079 (info): This is actually an end quote, but due to next char it looks suspect.
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 43:
   "
   ^-- SC1073 (error): Couldn't parse this double quoted string. Fix to allow more checks.
   ^-- SC1009 (info): The mentioned syntax error was in this simple command.
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 45:
   
   ^-- SC1072 (error): Expected end of double quoted string. Fix any mentioned problems and try again.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 5:
   <<'COMMENT'
   ^---------^ SC2188 (warning): This redirection doesn't have a command. Move to its command (or use 'true' as no-op).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 145:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 147:
           --cancel_running_build) build_id=$2; cancel_running_build $build_id; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --cancel_running_build) build_id=$2; cancel_running_build "$build_id"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 148:
           --cancel_pending_build) build_id=$2; cancel_pending_build $build_id; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --cancel_pending_build) build_id=$2; cancel_pending_build "$build_id"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 149:
           --show_build_state) build_id=$2; res=$(show_build_state $build_id); echo $res; shift ;;
                                                                   ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                   ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --show_build_state) build_id=$2; res=$(show_build_state "$build_id"); echo $res; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 150:
           --show_build_status) build_id=$2; res=$(show_build_status $build_id); echo $res; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                      ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                      ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --show_build_status) build_id=$2; res=$(show_build_status "$build_id"); echo $res; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 153:
           --get_all_builds_of_pr_id) get_all_builds $2; shift ;;
                                                     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --get_all_builds_of_pr_id) get_all_builds "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 161:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 4:
   zcp_TOKEN="eyJ0eXAiOiAiVENWMiJ9.bW1DcHJpRWNCSktnREhLaHd5Y1lndmpycnJ3.NmEwM2E3YTEtMTVmYy00NGU0LWI1OTAtMzU3MzljODE0Njdk"
   ^-------^ SC2034 (warning): zcp_TOKEN appears unused. Verify use (or export if used externally).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 7:
   zcp_TEAMCITY_SERVER="http://43.129.232.36:8111"
   ^-----------------^ SC2034 (warning): zcp_TEAMCITY_SERVER appears unused. Verify use (or export if used externally).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 40:
       state=$(show_build_state $build_id)
                                ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(show_build_state "$build_id")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 41:
       if [[ $state == "running" ]];then
             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${state} == "running" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 43:
           cmd="/app/rest/builds/id:$build_id"
                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd="/app/rest/builds/id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 44:
           cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
               ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd=${cmd}" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 45:
           url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                        ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                  ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                 ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                          ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                           ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 46:
           res=$(eval $eval)
                      ^---^ SC2154 (warning): eval is referenced but not assigned (for output from commands, use "$(eval ...)" ).
                      ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=$(eval "$eval")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 47:
           check=$(echo $res |grep status="UNKNOWN")
                        ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                        ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check=$(echo "$res" |grep status="UNKNOWN")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 48:
           if [[ -z $check ]];then
                    ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ -z ${check} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 57:
       state=$(show_build_state $build_id)
                                ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(show_build_state "$build_id")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 58:
       if [[ $state == "queued" ]];then
             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${state} == "queued" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 59:
           cmd="app/rest/buildQueue/id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd="app/rest/buildQueue/id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 60:
           cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
               ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd=${cmd}" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 61:
           url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                        ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                  ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                 ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                          ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                           ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 63:
           res=$(eval $eval)
                      ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=$(eval "$eval")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 64:
           check=$(echo $res |grep status="UNKNOWN")
                        ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                        ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check=$(echo "$res" |grep status="UNKNOWN")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 65:
           if [[ -z $check ]];then
                    ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ -z ${check} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 73:
       cmd="app/rest/builds?locator=id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 74:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 76:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 79:
       check=$(echo $res|grep "<builds count=\"1\"")
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       check=$(echo "$res"|grep "<builds count=\"1\"")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 80:
       if [[ -z $check ]]; then
                ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ -z ${check} ]]; then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 84:
       state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                   ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(echo "$res" |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g')
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 86:
       echo $state
            ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "$state"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 91:
       cmd="app/rest/builds?locator=id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 92:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 94:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 96:
       check1=$(echo $res|grep "<builds count=\"1\"")
                     ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                     ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       check1=$(echo "$res"|grep "<builds count=\"1\"")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 97:
       if [[ -z $check1 ]]; then
                ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ -z ${check1} ]]; then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 105:
       state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                   ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(echo "$res" |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g')
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 107:
       echo $state
            ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "$state"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 112:
       cmd="app/rest/builds?locator=branch:$branch"
                                           ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=branch:${branch}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 113:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 114:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 119:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                           ^-^ SC2089 (warning): Quotes/backslashes will be treated literally. Use an array.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 121:
       res=eval $url
       ^-----------^ SC2209 (warning): Use var=$(command) to assign output (or quote to assign string).
                ^--^ SC2090 (warning): Quotes/backslashes in this variable will not be respected.
                ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=eval ${url}
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 126:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $JSON_HEADER $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                   ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${JSON_HEADER} ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 128:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 12:
       while [ 1 -eq 1 ]
             ^---------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                 ^-^ SC2050 (warning): This expression is constant. Did you forget the $ on a variable?
   
   Did you mean: 
       while [[ 1 -eq 1 ]]
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 15:
   	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
                ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                              ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                            ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                    ^-------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^---^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files?per_page="$per_page"\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 17:
           if [ ${res_len} -ne 0 ];then
              ^------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           if [[ "${res_len}" -ne 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 18:
   	    let page+=1
               ^---------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 20:
   	    files=(${res[@]} ${files[*]})
                      ^-------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
                                ^---------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 30:
   out=($(get_all_change_files 11154))
        ^---------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check.sh line 3:
   <<'COMMENT'
   ^---------^ SC2188 (warning): This redirection doesn't have a command. Move to its command (or use 'true' as no-op).
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 26:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 30:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 33:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 34:
           if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 35:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 46:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 60:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 65:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 68:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 69:
           if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "be" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 70:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 74:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 88:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 93:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 96:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 97:
           if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "fe" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 98:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 102:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 113:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 115:
           --is_modify_only_invoved_be) check_all_change_files_is_under_be $2; shift ;;
                                                                           ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --is_modify_only_invoved_be) check_all_change_files_is_under_be "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 116:
           --is_modify_only_invoved_fe) check_all_change_files_is_under_fe $2; shift ;;
                                                                           ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --is_modify_only_invoved_fe) check_all_change_files_is_under_fe "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 117:
   	--is_modify_only_doc) check_all_change_files_is_under_doc $2; shift ;;
                                                                     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	--is_modify_only_doc) check_all_change_files_is_under_doc "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 124:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/prepare.sh line 5:
   test_branch=$pullrequestID
               ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   test_branch=${pullrequestID}
   
   
   In teamcity/doris/benchmark/clickbench/prepare.sh line 8:
   build_id=%teamcity.build.id%
   ^------^ SC2034 (warning): build_id appears unused. Verify use (or export if used externally).
   
   
   In teamcity/doris/benchmark/clickbench/prepare.sh line 10:
   checkout_home=$(pwd)
   ^-----------^ SC2034 (warning): checkout_home appears unused. Verify use (or export if used externally).
   
   
   In teamcity/doris/benchmark/clickbench/prepare.sh line 32:
   outdate_builds_of_pr=($(grep ${test_branch}_${source_branch}_${target_branch}_incubator-doris $pipeline_home/OpenSourceDorisBuild.log | awk '{print $1}'))
                         ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                ^------------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                               ^--------------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                ^--------------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                 ^------------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                 ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   outdate_builds_of_pr=($(grep "${test_branch}"_"${source_branch}"_"${target_branch}"_incubator-doris "$pipeline_home"/OpenSourceDorisBuild.log | awk '{print $1}'))
   
   
   In teamcity/doris/benchmark/clickbench/prepare.sh line 33:
   for old_build_id in ${outdate_builds_of_pr[@]}; do
                       ^------------------------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/prepare.sh line 34:
       echo "STRAT checking build $old_build_id"
                                  ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "STRAT checking build ${old_build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/prepare.sh line 35:
       old_build_status=$(bash ../common/teamcity_api.sh --show_build_state $old_build_id)
                                                                            ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                            ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       old_build_status=$(bash ../common/teamcity_api.sh --show_build_state "$old_build_id")
   
   
   In teamcity/doris/benchmark/clickbench/prepare.sh line 36:
       if [[ $old_build_status == "running" ]]; then
             ^---------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${old_build_status} == "running" ]]; then
   
   
   In teamcity/doris/benchmark/clickbench/prepare.sh line 37:
           bash teamcity_api.sh --cancel_running_build $old_build_id
                                                       ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                       ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           bash teamcity_api.sh --cancel_running_build "$old_build_id"
   
   For more information:
     https://www.shellcheck.net/wiki/SC2068 -- Double quote array expansions to ...
     https://www.shellcheck.net/wiki/SC2071 -- > is for string comparisons. Use ...
     https://www.shellcheck.net/wiki/SC1078 -- Did you forget to close this doub...
   ----------
   
   You can address the above issues in one of three ways:
   1. Manually correct the issue in the offending shell script;
   2. Disable specific issues by adding the comment:
     # shellcheck disable=NNNN
   above the line that contains the issue, where NNNN is the error code;
   3. Add '-e NNNN' to the SHELLCHECK_OPTS setting in your .yml action file.
   
   
   
   ```
   </details>
   
   <details>
   <summary>shfmt errors</summary>
   
   ```
   
   'shfmt ' returned error 1 finding the following formatting issues:
   
   ----------
   --- teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh
   @@ -8,23 +8,22 @@
    echo "===================================="
    echo "START TO DETECT RESIDUAL PROCESSES!"
    
   -check=$(lsof -i:$port|awk '{print $2}'|wc -l)
   -if [ "check$check" != "check0" ];then
   -    if [ "check"${case_level} == "check" ];then
   -        check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep deleted||wc -l)
   +check=$(lsof -i:$port | awk '{print $2}' | wc -l)
   +if [ "check$check" != "check0" ]; then
   +    if [ "check"${case_level} == "check" ]; then
   +        check_res=$(pwdx $(lsof -i:$port | grep -v PID | awk '{print $2}') | grep $env_name | grep deleted || wc -l)
        else
   -        check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep $case_level|grep deleted||wc -l)
   +        check_res=$(pwdx $(lsof -i:$port | grep -v PID | awk '{print $2}') | grep $env_name | grep $case_level | grep deleted || wc -l)
        fi
   -    if [ "check$check_res" != "check0" ];then
   -        be_pid=(`lsof -i:$port|grep -v PID|awk '{print $2}'`)
   +    if [ "check$check_res" != "check0" ]; then
   +        be_pid=($(lsof -i:$port | grep -v PID | awk '{print $2}'))
            echo "Detected residual processes: ${be_pid}"
            echo "kill residual processes: kill -9 ${be_pid}"
            kill -9 $be_pid
        fi
    else
   -        echo "No residual processes"
   +    echo "No residual processes"
    fi
    
   -
    echo "FINISH DETECT RESIDUAL PROCESSES!"
    echo "==================================="
   --- teamcity/doris/benchmark/clickbench/common/check_change_file.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/check_change_file.sh
   @@ -7,7 +7,7 @@
    GITHUB_TOKEN=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
    
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
    
   @@ -16,23 +16,21 @@
        $0 --is_modify_only_invoved_fe pr_id          if pr changed code only invoved fe doc, fs_brocker, return 0; else return 2
        $0 --is_modify_only_invoved_doc pr_id         if pr changed code only invoved doc, fs_brocker, return 0; else return 2
      "
   -  exit 1
   +    exit 1
    }
    
   -
   -function get_all_change_files(){
   +function get_all_change_files() {
        pr_id=$1
        files=()
    
        page=1
        per_page=100
   -    while [ 1 -eq 1 ]
   -    do
   +    while [ 1 -eq 1 ]; do
            #echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   -        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   +        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page | jq -r '.[]|select(.status = "removed")| .filename'))
            res_len=${#res[@]}
            #echo "================"$res_len
   -        if [ ${res_len} -ne 0 ];then
   +        if [ ${res_len} -ne 0 ]; then
                let page+=1
                #files="${res[@]}""$files"
                files=(${res[@]} ${files[*]})
   @@ -44,8 +42,7 @@
        echo "${files[@]}"
    }
    
   -
   -function check_removed_change_file(){
   +function check_removed_change_file() {
        pr_id=$1
        module=$2
        owner='apache'
   @@ -55,26 +52,25 @@
        file_nums=${#res[@]}
        is_code_change_flag=false
        module_file=0
   -    for file in ${res[@]}
   -    do
   -	#echo "$file"
   -	file_dir=$(echo $file|cut -d '/' -f 1)
   -        file_type=$(echo $file|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
   -	#if [[  "check$file_dir" == "check${module}" &&  ($file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js') ]];then
   -	if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]];then
   -	    echo "code has changed, ${file} is deleted"
   -	    is_code_change_flag=true
   -	fi
   -	if [[ "check$file_dir" == "check${module}" ]];then
   +    for file in ${res[@]}; do
   +        #echo "$file"
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        file_type=$(echo $file | rev | cut -d / -f 1 | cut -d '.' -f 1 | rev)
   +        #if [[  "check$file_dir" == "check${module}" &&  ($file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js') ]];then
   +        if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]]; then
   +            echo "code has changed, ${file} is deleted"
   +            is_code_change_flag=true
   +        fi
   +        if [[ "check$file_dir" == "check${module}" ]]; then
                let module_file+=1
   -	fi
   +        fi
        done
    
   -    if [[ "${is_code_change_flag}" == "false" ]];then
   -	echo "NO CODE FILE DELETED, PASSED!"
   +    if [[ "${is_code_change_flag}" == "false" ]]; then
   +        echo "NO CODE FILE DELETED, PASSED!"
            return 0
        else
   -	echo "CODE FILE BE DELETED"
   +        echo "CODE FILE BE DELETED"
            return 2
        fi
    
   @@ -95,20 +91,18 @@
    
        doc_num=0
        doc_sql_manual_num=0
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on docs/fs_brokers or not
   -	echo "$file"
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -	if [[ $file_dir == "docs" ]];then
   +        echo "$file"
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "docs" ]]; then
                let doc_num+=1
   -	fi
   -        if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]];then
   +        fi
   +        if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]]; then
                let doc_sql_manual_num+=1
                continue
            fi
    
   -
            #check change file is md/txt/doc file
            #file_type=$(echo $file|cut -d '.' -f 2)
            #if [[ $file_type == "md" || $file_type == "txt" || $file_type == "doc" ]];then
   @@ -120,7 +114,7 @@
        echo "doc_num: $doc_num"
        echo "file_nums: $file_nums"
        echo "doc_sql_manual_num: $doc_sql_manual_num"
   -    if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]];then
   +    if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]]; then
            echo "JUST MODIFY DOCUMENT, NO COED CHSNGED, PASSED!"
            return 0
        else
   @@ -143,17 +137,16 @@
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED BE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            echo "$file"
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
   -	fi
   +        fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY BE CODE, NO NEED RUN FE UT, PASSED!"
            return 0
        else
   @@ -176,17 +169,16 @@
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED FE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            echo "$file"
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY FE CODE, NO NEED RUN BE UT, PASSED!"
            return 0
        else
   @@ -197,42 +189,49 @@
    
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in
   +    if [ $# ] >0; then
   +        case "$1" in
            --is_modify_only_invoved_be)
   -	    check_removed_change_file $2 "be"
   -	    check_1=$?
   -	    check_all_change_files_is_under_be $2
   -	    check_2=$?
   -	    echo ${check_1}
   -	    echo ${check_2}
   -	    res=`expr $check_1 \* $check_2`
   -	    exit $res
   -	    shift ;;
   +            check_removed_change_file $2 "be"
   +            check_1=$?
   +            check_all_change_files_is_under_be $2
   +            check_2=$?
   +            echo ${check_1}
   +            echo ${check_2}
   +            res=$(expr $check_1 \* $check_2)
   +            exit $res
   +            shift
   +            ;;
            --is_modify_only_invoved_fe)
   -	    check_removed_change_file $2 "fe"
   -	    check_1=$?
   -	    check_all_change_files_is_under_fe $2
   -	    check_2=$?
   -            res=`expr $check_1 \* $check_2`
   -	    echo ${check_1}
   -	    echo ${check_2}
   -	    exit $res
   -	    shift ;;
   -	--is_modify_only_invoved_doc)
   -	    check_removed_change_file $2 "docs"
   -	    check_1=$?
   -	    check_all_change_files_is_under_doc $2
   -	    check_2=$?
   -            res=`expr $check_1 + $check_2`
   -	    echo ${check_1}
   +            check_removed_change_file $2 "fe"
   +            check_1=$?
   +            check_all_change_files_is_under_fe $2
   +            check_2=$?
   +            res=$(expr $check_1 \* $check_2)
   +            echo ${check_1}
                echo ${check_2}
   -	    exit $res
   -	    shift ;;
   -        *) echo "ERROR"; usage; exit 1 ;;
   -    esac
   +            exit $res
   +            shift
   +            ;;
   +        --is_modify_only_invoved_doc)
   +            check_removed_change_file $2 "docs"
   +            check_1=$?
   +            check_all_change_files_is_under_doc $2
   +            check_2=$?
   +            res=$(expr $check_1 + $check_2)
   +            echo ${check_1}
   +            echo ${check_2}
   +            exit $res
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            usage
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/common/clean_disk.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/clean_disk.sh
   @@ -3,7 +3,7 @@
    df -h
    existsTime=720
    #delete files created 20 hours ago
   -echo `date "+%Y-%m-%d %H:%M:%S"` "start to clear oudate file!"
   +echo $(date "+%Y-%m-%d %H:%M:%S") "start to clear oudate file!"
    cd /home/work/teamcity/TeamCity/piplineWork/Compile/
    find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
    cd -
   teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh:43:1: reached EOF without closing quote "
   --- teamcity/doris/benchmark/clickbench/common/teamcity_api.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/teamcity_api.sh
   @@ -139,23 +139,55 @@
    }
    COMMENT
    
   -
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in 
   -        --cancel_running_build) build_id=$2; cancel_running_build $build_id; shift ;;
   -        --cancel_pending_build) build_id=$2; cancel_pending_build $build_id; shift ;;
   -        --show_build_state) build_id=$2; res=$(show_build_state $build_id); echo $res; shift ;;
   -        --show_build_status) build_id=$2; res=$(show_build_status $build_id); echo $res; shift ;;
   -        --show_latest_builds) get_latest_builds; shift ;;
   -        --show_queued_builds) get_queued_builds; shift ;;
   -        --get_all_builds_of_pr_id) get_all_builds $2; shift ;;
   -	--help) usage; shift ;;
   -        *) echo "ERROR"; exit 1 ;;
   -    esac
   +    if [ $# ] >0; then
   +        case "$1" in
   +        --cancel_running_build)
   +            build_id=$2
   +            cancel_running_build $build_id
   +            shift
   +            ;;
   +        --cancel_pending_build)
   +            build_id=$2
   +            cancel_pending_build $build_id
   +            shift
   +            ;;
   +        --show_build_state)
   +            build_id=$2
   +            res=$(show_build_state $build_id)
   +            echo $res
   +            shift
   +            ;;
   +        --show_build_status)
   +            build_id=$2
   +            res=$(show_build_status $build_id)
   +            echo $res
   +            shift
   +            ;;
   +        --show_latest_builds)
   +            get_latest_builds
   +            shift
   +            ;;
   +        --show_queued_builds)
   +            get_queued_builds
   +            shift
   +            ;;
   +        --get_all_builds_of_pr_id)
   +            get_all_builds $2
   +            shift
   +            ;;
   +        --help)
   +            usage
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/common/teamcity_common.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/teamcity_common.sh
   @@ -11,7 +11,7 @@
    JSON_HEADER="--header \"Accept: application/json\""
    
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
         --cancel_running_build build_id    cancel a specific running build
   @@ -32,21 +32,21 @@
        $0 --show_queued_builds             show all queued builds
        $0 --get_all_builds_of_pr_id 9151   get all 9151 builds
      "
   -  exit 1
   +    exit 1
    }
    
    cancel_running_build() {
        build_id=$1
        state=$(show_build_state $build_id)
   -    if [[ $state == "running" ]];then
   +    if [[ $state == "running" ]]; then
            #curl --header "Authorization: Bearer eyJ0eXAiOiAiVENWMiJ9.bW1DcHJpRWNCSktnREhLaHd5Y1lndmpycnJ3.NmEwM2E3YTEtMTVmYy00NGU0LWI1OTAtMzU3MzljODE0Njdk" http://43.129.232.36:8111/app/rest/builds/id:333 -X POST -H 'Content-Type: application/json' -d '{ "buildCancelRequest": {       "comment": "Already running builds will be stopped.",      "readdIntoQueue": "false"    }  }'
            cmd="/app/rest/builds/id:$build_id"
            cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
            url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
            res=$(eval $eval)
   -        check=$(echo $res |grep status="UNKNOWN")
   -        if [[ -z $check ]];then
   -           echo "cancel fail!"
   +        check=$(echo $res | grep status="UNKNOWN")
   +        if [[ -z $check ]]; then
   +            echo "cancel fail!"
            fi
        fi
    
   @@ -55,15 +55,15 @@
    cancel_pending_build() {
        build_id=$1
        state=$(show_build_state $build_id)
   -    if [[ $state == "queued" ]];then
   +    if [[ $state == "queued" ]]; then
            cmd="app/rest/buildQueue/id:$build_id"
            cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
            url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
            #echo $url
            res=$(eval $eval)
   -        check=$(echo $res |grep status="UNKNOWN")
   -        if [[ -z $check ]];then
   -           echo "cancel fail!"
   +        check=$(echo $res | grep status="UNKNOWN")
   +        if [[ -z $check ]]; then
   +            echo "cancel fail!"
            fi
        fi
    }
   @@ -73,15 +73,15 @@
        cmd="app/rest/builds?locator=id:$build_id"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   -    
   +    res=$(eval $url)
   +
        #check build exist or not
   -    check=$(echo $res|grep "<builds count=\"1\"")
   +    check=$(echo $res | grep "<builds count=\"1\"")
        if [[ -z $check ]]; then
            return
        fi
        #get state
   -    state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
   +    state=$(echo $res | awk -F ' ' '{print $9" "$10" "$11}' | awk -F "state=" '{print $2}' | cut -d ' ' -f 1 | sed 's/\"//g')
        #only 2 state: queued and finished
        echo $state
    }
   @@ -91,9 +91,9 @@
        cmd="app/rest/builds?locator=id:$build_id"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   +    res=$(eval $url)
        #check build exist or not
   -    check1=$(echo $res|grep "<builds count=\"1\"")
   +    check1=$(echo $res | grep "<builds count=\"1\"")
        if [[ -z $check1 ]]; then
            return
        fi
   @@ -102,8 +102,8 @@
        #if [[ -z $check ]]; then
        #    return
        #fi
   -    state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
   -    #only 2 state: 
   +    state=$(echo $res | awk -F ' ' '{print $9" "$10" "$11}' | awk -F "status=" '{print $2}' | cut -d ' ' -f 1 | sed 's/\"//g')
   +    #only 2 state:
        echo $state
    }
    
   @@ -111,7 +111,7 @@
        branch=$1
        cmd="app/rest/builds?locator=branch:$branch"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
   -    res=`eval $url`
   +    res=$(eval $url)
    }
    
    get_latest_builds() {
   @@ -125,14 +125,12 @@
        cmd="app/rest/buildQueue"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $JSON_HEADER $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   +    res=$(eval $url)
        #a=$(echo $res|grep -oP 'build id=.*'|head -1)
   -    
   -    
   +
        #a=$res
        #while [[ "check"$a != "check" ]]
        #do
        #    a=$(echo $a|awk -F 'build id="' '{print $2}')
        #done
    }
   -
   --- teamcity/doris/benchmark/clickbench/common/test.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/test.sh
   @@ -3,33 +3,29 @@
    repo=doris
    GITHUB_TOKEN=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
    
   -function get_all_change_files(){
   +function get_all_change_files() {
        pr_id=$1
        files=()
    
        page=1
        per_page=100
   -    while [ 1 -eq 1 ]
   -    do
   -	#echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   -	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   +    while [ 1 -eq 1 ]; do
   +        #echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   +        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page | jq -r '.[]|select(.status = "removed")| .filename'))
            res_len=${#res[@]}
   -        if [ ${res_len} -ne 0 ];then
   -	    let page+=1
   +        if [ ${res_len} -ne 0 ]; then
   +            let page+=1
                #files="${res[@]}""$files"
   -	    files=(${res[@]} ${files[*]})
   +            files=(${res[@]} ${files[*]})
            else
                break
            fi
   -	echo 
   +        echo
        done
        echo "${files[@]}"
    }
    
   -
    out=($(get_all_change_files 11154))
    
   -
   -
    echo "=================="
    echo "${out[@]}"
   --- teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh
   @@ -3,9 +3,8 @@
    #res=(`git diff --name-only HEAD~ HEAD`)
    #file_nums=${#res[@]}
    
   -
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
    
   @@ -14,24 +13,22 @@
        $0 --is_modify_only_invoved_fe pr_id          if pr changed code only invoved fe doc, fs_brocker, return 0; else return 2
        $0 --is_modify_only_invoved_doc pr_id         if pr changed code only invoved doc, fs_brocker, return 0; else return 2
      "
   -  exit 1
   +    exit 1
    }
    
   -
    function check_all_change_files_is_under_doc() {
    
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on docs/fs_brokers or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
   @@ -43,7 +40,7 @@
            #fi
        done
    
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY DOCUMENT, NO COED CHSNGED, PASSED!"
            exit 0
        else
   @@ -57,21 +54,20 @@
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED BE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
   -	fi
   +        fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY BE CODE, NO NEED RUN FE UT, PASSED!"
            exit 0
        else
   @@ -85,21 +81,20 @@
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED FE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY FE CODE, NO NEED RUN BE UT, PASSED!"
            exit 0
        else
   @@ -110,15 +105,28 @@
    
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in
   -        --is_modify_only_invoved_be) check_all_change_files_is_under_be $2; shift ;;
   -        --is_modify_only_invoved_fe) check_all_change_files_is_under_fe $2; shift ;;
   -	--is_modify_only_doc) check_all_change_files_is_under_doc $2; shift ;;
   -        *) echo "ERROR"; usage; exit 1 ;;
   -    esac
   +    if [ $# ] >0; then
   +        case "$1" in
   +        --is_modify_only_invoved_be)
   +            check_all_change_files_is_under_be $2
   +            shift
   +            ;;
   +        --is_modify_only_invoved_fe)
   +            check_all_change_files_is_under_fe $2
   +            shift
   +            ;;
   +        --is_modify_only_doc)
   +            check_all_change_files_is_under_doc $2
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            usage
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/prepare.sh.orig
   +++ teamcity/doris/benchmark/clickbench/prepare.sh
   ----------
   
   You can reformat the above files to meet shfmt's requirements by typing:
   
     shfmt  -w filename
   
   
   ```
   </details>
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] github-actions[bot] commented on pull request #13259: test benchmark pipeline

Posted by GitBox <gi...@apache.org>.
github-actions[bot] commented on PR #13259:
URL: https://github.com/apache/doris/pull/13259#issuecomment-1297503130

   #### `sh-checker report`
   
   To get the full details, please check in the [job]("https://github.com/apache/doris/actions/runs/3361750904") output.
   
   <details>
   <summary>shellcheck errors</summary>
   
   ```
   
   'shellcheck ' returned error 1 finding the following syntactical issues:
   
   ----------
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 11:
   check=$(lsof -i:$port|awk '{print $2}'|wc -l)
                   ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   check=$(lsof -i:"$port"|awk '{print $2}'|wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 12:
   if [ "check$check" != "check0" ];then
      ^---------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
              ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   if [[ "check${check}" != "check0" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 13:
       if [ "check"${case_level} == "check" ];then
          ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                   ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       if [[ "check""${case_level}" == "check" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 14:
           check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep deleted||wc -l)
                            ^-- SC2046 (warning): Quote this to prevent word splitting.
                            ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                     ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                     ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                              ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                              ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check_res=$(pwdx $(lsof -i:"$port"|grep -v PID|awk '{print $2}')|grep $env_name|grep deleted||wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 16:
           check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep $case_level|grep deleted||wc -l)
                            ^-- SC2046 (warning): Quote this to prevent word splitting.
                            ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                     ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                     ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                              ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                              ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                             ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                             ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check_res=$(pwdx $(lsof -i:"$port"|grep -v PID|awk '{print $2}')|grep $env_name|grep $case_level|grep deleted||wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 18:
       if [ "check$check_res" != "check0" ];then
          ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                  ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ "check${check_res}" != "check0" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 19:
           be_pid=(`lsof -i:$port|grep -v PID|awk '{print $2}'`)
                   ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                   ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                            ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                            ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           be_pid=($(lsof -i:"$port"|grep -v PID|awk '{print $2}'))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 20:
           echo "Detected residual processes: ${be_pid}"
                                              ^-------^ SC2128 (warning): Expanding an array without an index only gives the first element.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 21:
           echo "kill residual processes: kill -9 ${be_pid}"
                                                  ^-------^ SC2128 (warning): Expanding an array without an index only gives the first element.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 22:
           kill -9 $be_pid
                   ^-----^ SC2128 (warning): Expanding an array without an index only gives the first element.
                   ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           kill -9 "$be_pid"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 29:
       while [ 1 -eq 1 ]
             ^---------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                 ^-^ SC2050 (warning): This expression is constant. Did you forget the $ on a variable?
   
   Did you mean: 
       while [[ 1 -eq 1 ]]
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 32:
           res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
                ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                              ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                            ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                    ^-------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^---^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files?per_page="$per_page"\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 35:
           if [ ${res_len} -ne 0 ];then
              ^------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           if [[ "${res_len}" -ne 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 36:
               let page+=1
               ^---------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 38:
               files=(${res[@]} ${files[*]})
                      ^-------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
                                ^---------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 54:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 58:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 61:
   	file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 62:
           file_type=$(echo $file|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
                            ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                            ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_type=$(echo "$file"|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 64:
   	if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]];then
                 ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                     ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                           ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ ${file_type} == "cpp" || ${file_type} == "c" || ${file_type} == "java" || ${file_type} == "py" || ${file_type} == "h" || ${file_type} == 'js' ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 68:
   	if [[ "check$file_dir" == "check${module}" ]];then
                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ "check${file_dir}" == "check${module}" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 69:
               let module_file+=1
               ^----------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 89:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 98:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 101:
   	echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 102:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 103:
   	if [[ $file_dir == "docs" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ ${file_dir} == "docs" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 104:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 106:
           if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]];then
                  ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                              ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ "${file}" =~ "docs/zh-CN/docs/sql-manual/" || "${file}" =~ "docs/en/docs/sql-manual/" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 107:
               let doc_sql_manual_num+=1
               ^-----------------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 120:
       echo "doc_num: $doc_num"
                      ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "doc_num: ${doc_num}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 121:
       echo "file_nums: $file_nums"
                        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "file_nums: ${file_nums}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 122:
       echo "doc_sql_manual_num: $doc_sql_manual_num"
                                 ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "doc_sql_manual_num: ${doc_sql_manual_num}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 123:
       if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} && ${doc_sql_manual_num} -eq 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 138:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 146:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 148:
           echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 150:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 151:
           if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "be" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 152:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 156:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 171:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 179:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 181:
           echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 183:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 184:
           if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "fe" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 185:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 189:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 200:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 203:
   	    check_removed_change_file $2 "be"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "be"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 205:
   	    check_all_change_files_is_under_be $2
                                                  ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_be "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 207:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 208:
   	    echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 209:
   	    res=`expr $check_1 \* $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    res=$(expr "$check_1" \* $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 210:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 213:
   	    check_removed_change_file $2 "fe"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "fe"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 215:
   	    check_all_change_files_is_under_fe $2
                                                  ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_fe "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 217:
               res=`expr $check_1 \* $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
               res=$(expr "$check_1" \* $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 218:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 219:
   	    echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 220:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 223:
   	    check_removed_change_file $2 "docs"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "docs"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 225:
   	    check_all_change_files_is_under_doc $2
                                                   ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_doc "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 227:
               res=`expr $check_1 + $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                    ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                    ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
               res=$(expr "$check_1" + $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 228:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 229:
               echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
               echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 230:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 238:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 6:
   echo `date "+%Y-%m-%d %H:%M:%S"` "start to clear oudate file!"
        ^-------------------------^ SC2046 (warning): Quote this to prevent word splitting.
        ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
   
   Did you mean: 
   echo $(date "+%Y-%m-%d %H:%M:%S") "start to clear oudate file!"
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 7:
   cd /home/work/teamcity/TeamCity/piplineWork/Compile/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/Compile/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 8:
   find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                         ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 9:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   ^--^ SC2103 (info): Use a ( subshell ) to avoid having to cd back.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 10:
   cd /home/work/teamcity/TeamCity/piplineWork/feUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/feUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 11:
   find /home/work/teamcity/TeamCity/piplineWork/feUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/feUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 12:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 13:
   cd /home/work/teamcity/TeamCity/piplineWork/beUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/beUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 14:
   find /home/work/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 15:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 16:
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 17:
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                         ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 18:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 19:
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 20:
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_compile.sh line 3:
   id=$(echo $RANDOM)
      ^-------------^ SC2116 (style): Useless echo? Instead of 'cmd $(echo foo)', just use 'cmd foo'.
             ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
             ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   id=$(echo "$RANDOM")
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_compile.sh line 5:
   docker run -i --rm --name doris-compile-$id -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v $work_path:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
                                           ^-^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                           ^-^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                                    ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   docker run -i --rm --name doris-compile-"$id" -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v $work_path:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 40:
       docker_name="doris-compile-"$(echo $RANDOM)
                                  ^-- SC1078 (warning): Did you forget to close this double quoted string?
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 42:
       cmd="docker run -i --rm --name doris-compile-$id -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v %system.teamcity.build.workingDir%:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
           ^-- SC1079 (info): This is actually an end quote, but due to next char it looks suspect.
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 43:
   "
   ^-- SC1073 (error): Couldn't parse this double quoted string. Fix to allow more checks.
   ^-- SC1009 (info): The mentioned syntax error was in this simple command.
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 45:
   
   ^-- SC1072 (error): Expected end of double quoted string. Fix any mentioned problems and try again.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 5:
   <<'COMMENT'
   ^---------^ SC2188 (warning): This redirection doesn't have a command. Move to its command (or use 'true' as no-op).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 145:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 147:
           --cancel_running_build) build_id=$2; cancel_running_build $build_id; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --cancel_running_build) build_id=$2; cancel_running_build "$build_id"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 148:
           --cancel_pending_build) build_id=$2; cancel_pending_build $build_id; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --cancel_pending_build) build_id=$2; cancel_pending_build "$build_id"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 149:
           --show_build_state) build_id=$2; res=$(show_build_state $build_id); echo $res; shift ;;
                                                                   ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                   ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --show_build_state) build_id=$2; res=$(show_build_state "$build_id"); echo $res; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 150:
           --show_build_status) build_id=$2; res=$(show_build_status $build_id); echo $res; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                      ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                      ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --show_build_status) build_id=$2; res=$(show_build_status "$build_id"); echo $res; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 153:
           --get_all_builds_of_pr_id) get_all_builds $2; shift ;;
                                                     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --get_all_builds_of_pr_id) get_all_builds "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 161:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 4:
   zcp_TOKEN="eyJ0eXAiOiAiVENWMiJ9.bW1DcHJpRWNCSktnREhLaHd5Y1lndmpycnJ3.NmEwM2E3YTEtMTVmYy00NGU0LWI1OTAtMzU3MzljODE0Njdk"
   ^-------^ SC2034 (warning): zcp_TOKEN appears unused. Verify use (or export if used externally).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 7:
   zcp_TEAMCITY_SERVER="http://43.129.232.36:8111"
   ^-----------------^ SC2034 (warning): zcp_TEAMCITY_SERVER appears unused. Verify use (or export if used externally).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 40:
       state=$(show_build_state $build_id)
                                ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(show_build_state "$build_id")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 41:
       if [[ $state == "running" ]];then
             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${state} == "running" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 43:
           cmd="/app/rest/builds/id:$build_id"
                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd="/app/rest/builds/id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 44:
           cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
               ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd=${cmd}" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 45:
           url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                        ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                  ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                 ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                          ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                           ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 46:
           res=$(eval $eval)
                      ^---^ SC2154 (warning): eval is referenced but not assigned (for output from commands, use "$(eval ...)" ).
                      ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=$(eval "$eval")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 47:
           check=$(echo $res |grep status="UNKNOWN")
                        ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                        ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check=$(echo "$res" |grep status="UNKNOWN")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 48:
           if [[ -z $check ]];then
                    ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ -z ${check} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 57:
       state=$(show_build_state $build_id)
                                ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(show_build_state "$build_id")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 58:
       if [[ $state == "queued" ]];then
             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${state} == "queued" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 59:
           cmd="app/rest/buildQueue/id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd="app/rest/buildQueue/id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 60:
           cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
               ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd=${cmd}" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 61:
           url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                        ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                  ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                 ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                          ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                           ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 63:
           res=$(eval $eval)
                      ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=$(eval "$eval")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 64:
           check=$(echo $res |grep status="UNKNOWN")
                        ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                        ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check=$(echo "$res" |grep status="UNKNOWN")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 65:
           if [[ -z $check ]];then
                    ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ -z ${check} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 73:
       cmd="app/rest/builds?locator=id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 74:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 76:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 79:
       check=$(echo $res|grep "<builds count=\"1\"")
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       check=$(echo "$res"|grep "<builds count=\"1\"")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 80:
       if [[ -z $check ]]; then
                ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ -z ${check} ]]; then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 84:
       state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                   ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(echo "$res" |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g')
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 86:
       echo $state
            ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "$state"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 91:
       cmd="app/rest/builds?locator=id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 92:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 94:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 96:
       check1=$(echo $res|grep "<builds count=\"1\"")
                     ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                     ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       check1=$(echo "$res"|grep "<builds count=\"1\"")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 97:
       if [[ -z $check1 ]]; then
                ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ -z ${check1} ]]; then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 105:
       state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                   ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(echo "$res" |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g')
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 107:
       echo $state
            ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "$state"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 112:
       cmd="app/rest/builds?locator=branch:$branch"
                                           ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=branch:${branch}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 113:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 114:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 119:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                           ^-^ SC2089 (warning): Quotes/backslashes will be treated literally. Use an array.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 121:
       res=eval $url
       ^-----------^ SC2209 (warning): Use var=$(command) to assign output (or quote to assign string).
                ^--^ SC2090 (warning): Quotes/backslashes in this variable will not be respected.
                ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=eval ${url}
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 126:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $JSON_HEADER $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                   ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${JSON_HEADER} ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 128:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 12:
       while [ 1 -eq 1 ]
             ^---------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                 ^-^ SC2050 (warning): This expression is constant. Did you forget the $ on a variable?
   
   Did you mean: 
       while [[ 1 -eq 1 ]]
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 15:
   	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
                ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                              ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                            ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                    ^-------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^---^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files?per_page="$per_page"\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 17:
           if [ ${res_len} -ne 0 ];then
              ^------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           if [[ "${res_len}" -ne 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 18:
   	    let page+=1
               ^---------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 20:
   	    files=(${res[@]} ${files[*]})
                      ^-------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
                                ^---------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 30:
   out=($(get_all_change_files 11154))
        ^---------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check.sh line 3:
   <<'COMMENT'
   ^---------^ SC2188 (warning): This redirection doesn't have a command. Move to its command (or use 'true' as no-op).
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 26:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 30:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 33:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 34:
           if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 35:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 46:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 60:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 65:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 68:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 69:
           if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "be" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 70:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 74:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 88:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 93:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 96:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 97:
           if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "fe" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 98:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 102:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 113:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 115:
           --is_modify_only_invoved_be) check_all_change_files_is_under_be $2; shift ;;
                                                                           ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --is_modify_only_invoved_be) check_all_change_files_is_under_be "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 116:
           --is_modify_only_invoved_fe) check_all_change_files_is_under_fe $2; shift ;;
                                                                           ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --is_modify_only_invoved_fe) check_all_change_files_is_under_fe "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 117:
   	--is_modify_only_doc) check_all_change_files_is_under_doc $2; shift ;;
                                                                     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	--is_modify_only_doc) check_all_change_files_is_under_doc "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 124:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   For more information:
     https://www.shellcheck.net/wiki/SC2068 -- Double quote array expansions to ...
     https://www.shellcheck.net/wiki/SC2071 -- > is for string comparisons. Use ...
     https://www.shellcheck.net/wiki/SC1078 -- Did you forget to close this doub...
   ----------
   
   You can address the above issues in one of three ways:
   1. Manually correct the issue in the offending shell script;
   2. Disable specific issues by adding the comment:
     # shellcheck disable=NNNN
   above the line that contains the issue, where NNNN is the error code;
   3. Add '-e NNNN' to the SHELLCHECK_OPTS setting in your .yml action file.
   
   
   
   ```
   </details>
   
   <details>
   <summary>shfmt errors</summary>
   
   ```
   
   'shfmt ' returned error 1 finding the following formatting issues:
   
   ----------
   --- teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh
   @@ -8,23 +8,22 @@
    echo "===================================="
    echo "START TO DETECT RESIDUAL PROCESSES!"
    
   -check=$(lsof -i:$port|awk '{print $2}'|wc -l)
   -if [ "check$check" != "check0" ];then
   -    if [ "check"${case_level} == "check" ];then
   -        check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep deleted||wc -l)
   +check=$(lsof -i:$port | awk '{print $2}' | wc -l)
   +if [ "check$check" != "check0" ]; then
   +    if [ "check"${case_level} == "check" ]; then
   +        check_res=$(pwdx $(lsof -i:$port | grep -v PID | awk '{print $2}') | grep $env_name | grep deleted || wc -l)
        else
   -        check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep $case_level|grep deleted||wc -l)
   +        check_res=$(pwdx $(lsof -i:$port | grep -v PID | awk '{print $2}') | grep $env_name | grep $case_level | grep deleted || wc -l)
        fi
   -    if [ "check$check_res" != "check0" ];then
   -        be_pid=(`lsof -i:$port|grep -v PID|awk '{print $2}'`)
   +    if [ "check$check_res" != "check0" ]; then
   +        be_pid=($(lsof -i:$port | grep -v PID | awk '{print $2}'))
            echo "Detected residual processes: ${be_pid}"
            echo "kill residual processes: kill -9 ${be_pid}"
            kill -9 $be_pid
        fi
    else
   -        echo "No residual processes"
   +    echo "No residual processes"
    fi
    
   -
    echo "FINISH DETECT RESIDUAL PROCESSES!"
    echo "==================================="
   --- teamcity/doris/benchmark/clickbench/common/check_change_file.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/check_change_file.sh
   @@ -7,7 +7,7 @@
    GITHUB_TOKEN=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
    
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
    
   @@ -16,23 +16,21 @@
        $0 --is_modify_only_invoved_fe pr_id          if pr changed code only invoved fe doc, fs_brocker, return 0; else return 2
        $0 --is_modify_only_invoved_doc pr_id         if pr changed code only invoved doc, fs_brocker, return 0; else return 2
      "
   -  exit 1
   +    exit 1
    }
    
   -
   -function get_all_change_files(){
   +function get_all_change_files() {
        pr_id=$1
        files=()
    
        page=1
        per_page=100
   -    while [ 1 -eq 1 ]
   -    do
   +    while [ 1 -eq 1 ]; do
            #echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   -        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   +        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page | jq -r '.[]|select(.status = "removed")| .filename'))
            res_len=${#res[@]}
            #echo "================"$res_len
   -        if [ ${res_len} -ne 0 ];then
   +        if [ ${res_len} -ne 0 ]; then
                let page+=1
                #files="${res[@]}""$files"
                files=(${res[@]} ${files[*]})
   @@ -44,8 +42,7 @@
        echo "${files[@]}"
    }
    
   -
   -function check_removed_change_file(){
   +function check_removed_change_file() {
        pr_id=$1
        module=$2
        owner='apache'
   @@ -55,26 +52,25 @@
        file_nums=${#res[@]}
        is_code_change_flag=false
        module_file=0
   -    for file in ${res[@]}
   -    do
   -	#echo "$file"
   -	file_dir=$(echo $file|cut -d '/' -f 1)
   -        file_type=$(echo $file|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
   -	#if [[  "check$file_dir" == "check${module}" &&  ($file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js') ]];then
   -	if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]];then
   -	    echo "code has changed, ${file} is deleted"
   -	    is_code_change_flag=true
   -	fi
   -	if [[ "check$file_dir" == "check${module}" ]];then
   +    for file in ${res[@]}; do
   +        #echo "$file"
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        file_type=$(echo $file | rev | cut -d / -f 1 | cut -d '.' -f 1 | rev)
   +        #if [[  "check$file_dir" == "check${module}" &&  ($file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js') ]];then
   +        if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]]; then
   +            echo "code has changed, ${file} is deleted"
   +            is_code_change_flag=true
   +        fi
   +        if [[ "check$file_dir" == "check${module}" ]]; then
                let module_file+=1
   -	fi
   +        fi
        done
    
   -    if [[ "${is_code_change_flag}" == "false" ]];then
   -	echo "NO CODE FILE DELETED, PASSED!"
   +    if [[ "${is_code_change_flag}" == "false" ]]; then
   +        echo "NO CODE FILE DELETED, PASSED!"
            return 0
        else
   -	echo "CODE FILE BE DELETED"
   +        echo "CODE FILE BE DELETED"
            return 2
        fi
    
   @@ -95,20 +91,18 @@
    
        doc_num=0
        doc_sql_manual_num=0
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on docs/fs_brokers or not
   -	echo "$file"
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -	if [[ $file_dir == "docs" ]];then
   +        echo "$file"
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "docs" ]]; then
                let doc_num+=1
   -	fi
   -        if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]];then
   +        fi
   +        if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]]; then
                let doc_sql_manual_num+=1
                continue
            fi
    
   -
            #check change file is md/txt/doc file
            #file_type=$(echo $file|cut -d '.' -f 2)
            #if [[ $file_type == "md" || $file_type == "txt" || $file_type == "doc" ]];then
   @@ -120,7 +114,7 @@
        echo "doc_num: $doc_num"
        echo "file_nums: $file_nums"
        echo "doc_sql_manual_num: $doc_sql_manual_num"
   -    if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]];then
   +    if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]]; then
            echo "JUST MODIFY DOCUMENT, NO COED CHSNGED, PASSED!"
            return 0
        else
   @@ -143,17 +137,16 @@
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED BE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            echo "$file"
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
   -	fi
   +        fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY BE CODE, NO NEED RUN FE UT, PASSED!"
            return 0
        else
   @@ -176,17 +169,16 @@
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED FE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            echo "$file"
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY FE CODE, NO NEED RUN BE UT, PASSED!"
            return 0
        else
   @@ -197,42 +189,49 @@
    
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in
   +    if [ $# ] >0; then
   +        case "$1" in
            --is_modify_only_invoved_be)
   -	    check_removed_change_file $2 "be"
   -	    check_1=$?
   -	    check_all_change_files_is_under_be $2
   -	    check_2=$?
   -	    echo ${check_1}
   -	    echo ${check_2}
   -	    res=`expr $check_1 \* $check_2`
   -	    exit $res
   -	    shift ;;
   +            check_removed_change_file $2 "be"
   +            check_1=$?
   +            check_all_change_files_is_under_be $2
   +            check_2=$?
   +            echo ${check_1}
   +            echo ${check_2}
   +            res=$(expr $check_1 \* $check_2)
   +            exit $res
   +            shift
   +            ;;
            --is_modify_only_invoved_fe)
   -	    check_removed_change_file $2 "fe"
   -	    check_1=$?
   -	    check_all_change_files_is_under_fe $2
   -	    check_2=$?
   -            res=`expr $check_1 \* $check_2`
   -	    echo ${check_1}
   -	    echo ${check_2}
   -	    exit $res
   -	    shift ;;
   -	--is_modify_only_invoved_doc)
   -	    check_removed_change_file $2 "docs"
   -	    check_1=$?
   -	    check_all_change_files_is_under_doc $2
   -	    check_2=$?
   -            res=`expr $check_1 + $check_2`
   -	    echo ${check_1}
   +            check_removed_change_file $2 "fe"
   +            check_1=$?
   +            check_all_change_files_is_under_fe $2
   +            check_2=$?
   +            res=$(expr $check_1 \* $check_2)
   +            echo ${check_1}
                echo ${check_2}
   -	    exit $res
   -	    shift ;;
   -        *) echo "ERROR"; usage; exit 1 ;;
   -    esac
   +            exit $res
   +            shift
   +            ;;
   +        --is_modify_only_invoved_doc)
   +            check_removed_change_file $2 "docs"
   +            check_1=$?
   +            check_all_change_files_is_under_doc $2
   +            check_2=$?
   +            res=$(expr $check_1 + $check_2)
   +            echo ${check_1}
   +            echo ${check_2}
   +            exit $res
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            usage
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/common/clean_disk.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/clean_disk.sh
   @@ -3,7 +3,7 @@
    df -h
    existsTime=720
    #delete files created 20 hours ago
   -echo `date "+%Y-%m-%d %H:%M:%S"` "start to clear oudate file!"
   +echo $(date "+%Y-%m-%d %H:%M:%S") "start to clear oudate file!"
    cd /home/work/teamcity/TeamCity/piplineWork/Compile/
    find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
    cd -
   teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh:43:1: reached EOF without closing quote "
   --- teamcity/doris/benchmark/clickbench/common/teamcity_api.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/teamcity_api.sh
   @@ -139,23 +139,55 @@
    }
    COMMENT
    
   -
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in 
   -        --cancel_running_build) build_id=$2; cancel_running_build $build_id; shift ;;
   -        --cancel_pending_build) build_id=$2; cancel_pending_build $build_id; shift ;;
   -        --show_build_state) build_id=$2; res=$(show_build_state $build_id); echo $res; shift ;;
   -        --show_build_status) build_id=$2; res=$(show_build_status $build_id); echo $res; shift ;;
   -        --show_latest_builds) get_latest_builds; shift ;;
   -        --show_queued_builds) get_queued_builds; shift ;;
   -        --get_all_builds_of_pr_id) get_all_builds $2; shift ;;
   -	--help) usage; shift ;;
   -        *) echo "ERROR"; exit 1 ;;
   -    esac
   +    if [ $# ] >0; then
   +        case "$1" in
   +        --cancel_running_build)
   +            build_id=$2
   +            cancel_running_build $build_id
   +            shift
   +            ;;
   +        --cancel_pending_build)
   +            build_id=$2
   +            cancel_pending_build $build_id
   +            shift
   +            ;;
   +        --show_build_state)
   +            build_id=$2
   +            res=$(show_build_state $build_id)
   +            echo $res
   +            shift
   +            ;;
   +        --show_build_status)
   +            build_id=$2
   +            res=$(show_build_status $build_id)
   +            echo $res
   +            shift
   +            ;;
   +        --show_latest_builds)
   +            get_latest_builds
   +            shift
   +            ;;
   +        --show_queued_builds)
   +            get_queued_builds
   +            shift
   +            ;;
   +        --get_all_builds_of_pr_id)
   +            get_all_builds $2
   +            shift
   +            ;;
   +        --help)
   +            usage
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/common/teamcity_common.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/teamcity_common.sh
   @@ -11,7 +11,7 @@
    JSON_HEADER="--header \"Accept: application/json\""
    
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
         --cancel_running_build build_id    cancel a specific running build
   @@ -32,21 +32,21 @@
        $0 --show_queued_builds             show all queued builds
        $0 --get_all_builds_of_pr_id 9151   get all 9151 builds
      "
   -  exit 1
   +    exit 1
    }
    
    cancel_running_build() {
        build_id=$1
        state=$(show_build_state $build_id)
   -    if [[ $state == "running" ]];then
   +    if [[ $state == "running" ]]; then
            #curl --header "Authorization: Bearer eyJ0eXAiOiAiVENWMiJ9.bW1DcHJpRWNCSktnREhLaHd5Y1lndmpycnJ3.NmEwM2E3YTEtMTVmYy00NGU0LWI1OTAtMzU3MzljODE0Njdk" http://43.129.232.36:8111/app/rest/builds/id:333 -X POST -H 'Content-Type: application/json' -d '{ "buildCancelRequest": {       "comment": "Already running builds will be stopped.",      "readdIntoQueue": "false"    }  }'
            cmd="/app/rest/builds/id:$build_id"
            cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
            url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
            res=$(eval $eval)
   -        check=$(echo $res |grep status="UNKNOWN")
   -        if [[ -z $check ]];then
   -           echo "cancel fail!"
   +        check=$(echo $res | grep status="UNKNOWN")
   +        if [[ -z $check ]]; then
   +            echo "cancel fail!"
            fi
        fi
    
   @@ -55,15 +55,15 @@
    cancel_pending_build() {
        build_id=$1
        state=$(show_build_state $build_id)
   -    if [[ $state == "queued" ]];then
   +    if [[ $state == "queued" ]]; then
            cmd="app/rest/buildQueue/id:$build_id"
            cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
            url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
            #echo $url
            res=$(eval $eval)
   -        check=$(echo $res |grep status="UNKNOWN")
   -        if [[ -z $check ]];then
   -           echo "cancel fail!"
   +        check=$(echo $res | grep status="UNKNOWN")
   +        if [[ -z $check ]]; then
   +            echo "cancel fail!"
            fi
        fi
    }
   @@ -73,15 +73,15 @@
        cmd="app/rest/builds?locator=id:$build_id"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   -    
   +    res=$(eval $url)
   +
        #check build exist or not
   -    check=$(echo $res|grep "<builds count=\"1\"")
   +    check=$(echo $res | grep "<builds count=\"1\"")
        if [[ -z $check ]]; then
            return
        fi
        #get state
   -    state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
   +    state=$(echo $res | awk -F ' ' '{print $9" "$10" "$11}' | awk -F "state=" '{print $2}' | cut -d ' ' -f 1 | sed 's/\"//g')
        #only 2 state: queued and finished
        echo $state
    }
   @@ -91,9 +91,9 @@
        cmd="app/rest/builds?locator=id:$build_id"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   +    res=$(eval $url)
        #check build exist or not
   -    check1=$(echo $res|grep "<builds count=\"1\"")
   +    check1=$(echo $res | grep "<builds count=\"1\"")
        if [[ -z $check1 ]]; then
            return
        fi
   @@ -102,8 +102,8 @@
        #if [[ -z $check ]]; then
        #    return
        #fi
   -    state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
   -    #only 2 state: 
   +    state=$(echo $res | awk -F ' ' '{print $9" "$10" "$11}' | awk -F "status=" '{print $2}' | cut -d ' ' -f 1 | sed 's/\"//g')
   +    #only 2 state:
        echo $state
    }
    
   @@ -111,7 +111,7 @@
        branch=$1
        cmd="app/rest/builds?locator=branch:$branch"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
   -    res=`eval $url`
   +    res=$(eval $url)
    }
    
    get_latest_builds() {
   @@ -125,14 +125,12 @@
        cmd="app/rest/buildQueue"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $JSON_HEADER $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   +    res=$(eval $url)
        #a=$(echo $res|grep -oP 'build id=.*'|head -1)
   -    
   -    
   +
        #a=$res
        #while [[ "check"$a != "check" ]]
        #do
        #    a=$(echo $a|awk -F 'build id="' '{print $2}')
        #done
    }
   -
   --- teamcity/doris/benchmark/clickbench/common/test.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/test.sh
   @@ -3,33 +3,29 @@
    repo=doris
    GITHUB_TOKEN=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
    
   -function get_all_change_files(){
   +function get_all_change_files() {
        pr_id=$1
        files=()
    
        page=1
        per_page=100
   -    while [ 1 -eq 1 ]
   -    do
   -	#echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   -	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   +    while [ 1 -eq 1 ]; do
   +        #echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   +        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page | jq -r '.[]|select(.status = "removed")| .filename'))
            res_len=${#res[@]}
   -        if [ ${res_len} -ne 0 ];then
   -	    let page+=1
   +        if [ ${res_len} -ne 0 ]; then
   +            let page+=1
                #files="${res[@]}""$files"
   -	    files=(${res[@]} ${files[*]})
   +            files=(${res[@]} ${files[*]})
            else
                break
            fi
   -	echo 
   +        echo
        done
        echo "${files[@]}"
    }
    
   -
    out=($(get_all_change_files 11154))
    
   -
   -
    echo "=================="
    echo "${out[@]}"
   --- teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh
   @@ -3,9 +3,8 @@
    #res=(`git diff --name-only HEAD~ HEAD`)
    #file_nums=${#res[@]}
    
   -
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
    
   @@ -14,24 +13,22 @@
        $0 --is_modify_only_invoved_fe pr_id          if pr changed code only invoved fe doc, fs_brocker, return 0; else return 2
        $0 --is_modify_only_invoved_doc pr_id         if pr changed code only invoved doc, fs_brocker, return 0; else return 2
      "
   -  exit 1
   +    exit 1
    }
    
   -
    function check_all_change_files_is_under_doc() {
    
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on docs/fs_brokers or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
   @@ -43,7 +40,7 @@
            #fi
        done
    
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY DOCUMENT, NO COED CHSNGED, PASSED!"
            exit 0
        else
   @@ -57,21 +54,20 @@
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED BE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
   -	fi
   +        fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY BE CODE, NO NEED RUN FE UT, PASSED!"
            exit 0
        else
   @@ -85,21 +81,20 @@
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED FE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY FE CODE, NO NEED RUN BE UT, PASSED!"
            exit 0
        else
   @@ -110,15 +105,28 @@
    
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in
   -        --is_modify_only_invoved_be) check_all_change_files_is_under_be $2; shift ;;
   -        --is_modify_only_invoved_fe) check_all_change_files_is_under_fe $2; shift ;;
   -	--is_modify_only_doc) check_all_change_files_is_under_doc $2; shift ;;
   -        *) echo "ERROR"; usage; exit 1 ;;
   -    esac
   +    if [ $# ] >0; then
   +        case "$1" in
   +        --is_modify_only_invoved_be)
   +            check_all_change_files_is_under_be $2
   +            shift
   +            ;;
   +        --is_modify_only_invoved_fe)
   +            check_all_change_files_is_under_fe $2
   +            shift
   +            ;;
   +        --is_modify_only_doc)
   +            check_all_change_files_is_under_doc $2
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            usage
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   ----------
   
   You can reformat the above files to meet shfmt's requirements by typing:
   
     shfmt  -w filename
   
   
   ```
   </details>
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] github-actions[bot] commented on pull request #13259: test benchmark pipeline

Posted by GitBox <gi...@apache.org>.
github-actions[bot] commented on PR #13259:
URL: https://github.com/apache/doris/pull/13259#issuecomment-1328466827

   #### `sh-checker report`
   
   To get the full details, please check in the [job]("https://github.com/apache/doris/actions/runs/3561307514") output.
   
   <details>
   <summary>shellcheck errors</summary>
   
   ```
   
   'shellcheck ' returned error 1 finding the following syntactical issues:
   
   ----------
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 11:
   check=$(lsof -i:$port|awk '{print $2}'|wc -l)
                   ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   check=$(lsof -i:"$port"|awk '{print $2}'|wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 12:
   if [ "check$check" != "check0" ];then
      ^---------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
              ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   if [[ "check${check}" != "check0" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 13:
       if [ "check"${case_level} == "check" ];then
          ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                   ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       if [[ "check""${case_level}" == "check" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 14:
           check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep deleted||wc -l)
                            ^-- SC2046 (warning): Quote this to prevent word splitting.
                            ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                     ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                     ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                              ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                              ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check_res=$(pwdx $(lsof -i:"$port"|grep -v PID|awk '{print $2}')|grep $env_name|grep deleted||wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 16:
           check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep $case_level|grep deleted||wc -l)
                            ^-- SC2046 (warning): Quote this to prevent word splitting.
                            ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                     ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                     ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                              ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                              ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                             ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                             ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check_res=$(pwdx $(lsof -i:"$port"|grep -v PID|awk '{print $2}')|grep $env_name|grep $case_level|grep deleted||wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 18:
       if [ "check$check_res" != "check0" ];then
          ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                  ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ "check${check_res}" != "check0" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 19:
           be_pid=(`lsof -i:$port|grep -v PID|awk '{print $2}'`)
                   ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                   ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                            ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                            ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           be_pid=($(lsof -i:"$port"|grep -v PID|awk '{print $2}'))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 20:
           echo "Detected residual processes: ${be_pid}"
                                              ^-------^ SC2128 (warning): Expanding an array without an index only gives the first element.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 21:
           echo "kill residual processes: kill -9 ${be_pid}"
                                                  ^-------^ SC2128 (warning): Expanding an array without an index only gives the first element.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 22:
           kill -9 $be_pid
                   ^-----^ SC2128 (warning): Expanding an array without an index only gives the first element.
                   ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           kill -9 "$be_pid"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 29:
       while [ 1 -eq 1 ]
             ^---------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                 ^-^ SC2050 (warning): This expression is constant. Did you forget the $ on a variable?
   
   Did you mean: 
       while [[ 1 -eq 1 ]]
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 32:
           res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
                ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                              ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                            ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                    ^-------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^---^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files?per_page="$per_page"\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 35:
           if [ ${res_len} -ne 0 ];then
              ^------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           if [[ "${res_len}" -ne 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 36:
               let page+=1
               ^---------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 38:
               files=(${res[@]} ${files[*]})
                      ^-------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
                                ^---------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 54:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 58:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 61:
   	file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 62:
           file_type=$(echo $file|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
                            ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                            ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_type=$(echo "$file"|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 64:
   	if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]];then
                 ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                     ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                           ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ ${file_type} == "cpp" || ${file_type} == "c" || ${file_type} == "java" || ${file_type} == "py" || ${file_type} == "h" || ${file_type} == 'js' ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 68:
   	if [[ "check$file_dir" == "check${module}" ]];then
                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ "check${file_dir}" == "check${module}" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 69:
               let module_file+=1
               ^----------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 89:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 98:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 101:
   	echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 102:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 103:
   	if [[ $file_dir == "docs" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ ${file_dir} == "docs" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 104:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 106:
           if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]];then
                  ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                              ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ "${file}" =~ "docs/zh-CN/docs/sql-manual/" || "${file}" =~ "docs/en/docs/sql-manual/" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 107:
               let doc_sql_manual_num+=1
               ^-----------------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 120:
       echo "doc_num: $doc_num"
                      ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "doc_num: ${doc_num}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 121:
       echo "file_nums: $file_nums"
                        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "file_nums: ${file_nums}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 122:
       echo "doc_sql_manual_num: $doc_sql_manual_num"
                                 ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "doc_sql_manual_num: ${doc_sql_manual_num}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 123:
       if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} && ${doc_sql_manual_num} -eq 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 138:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 146:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 148:
           echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 150:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 151:
           if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "be" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 152:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 156:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 171:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 179:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 181:
           echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 183:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 184:
           if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "fe" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 185:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 189:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 200:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 203:
   	    check_removed_change_file $2 "be"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "be"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 205:
   	    check_all_change_files_is_under_be $2
                                                  ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_be "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 207:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 208:
   	    echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 209:
   	    res=`expr $check_1 \* $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    res=$(expr "$check_1" \* $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 210:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 213:
   	    check_removed_change_file $2 "fe"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "fe"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 215:
   	    check_all_change_files_is_under_fe $2
                                                  ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_fe "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 217:
               res=`expr $check_1 \* $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
               res=$(expr "$check_1" \* $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 218:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 219:
   	    echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 220:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 223:
   	    check_removed_change_file $2 "docs"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "docs"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 225:
   	    check_all_change_files_is_under_doc $2
                                                   ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_doc "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 227:
               res=`expr $check_1 + $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                    ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                    ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
               res=$(expr "$check_1" + $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 228:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 229:
               echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
               echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 230:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 238:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 6:
   echo `date "+%Y-%m-%d %H:%M:%S"` "start to clear oudate file!"
        ^-------------------------^ SC2046 (warning): Quote this to prevent word splitting.
        ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
   
   Did you mean: 
   echo $(date "+%Y-%m-%d %H:%M:%S") "start to clear oudate file!"
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 7:
   cd /home/work/teamcity/TeamCity/piplineWork/Compile/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/Compile/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 8:
   find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                         ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 9:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   ^--^ SC2103 (info): Use a ( subshell ) to avoid having to cd back.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 10:
   cd /home/work/teamcity/TeamCity/piplineWork/feUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/feUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 11:
   find /home/work/teamcity/TeamCity/piplineWork/feUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/feUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 12:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 13:
   cd /home/work/teamcity/TeamCity/piplineWork/beUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/beUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 14:
   find /home/work/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 15:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 16:
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 17:
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                         ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 18:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 19:
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 20:
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_compile.sh line 3:
   id=$(echo $RANDOM)
      ^-------------^ SC2116 (style): Useless echo? Instead of 'cmd $(echo foo)', just use 'cmd foo'.
             ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
             ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   id=$(echo "$RANDOM")
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_compile.sh line 5:
   docker run -i --rm --name doris-compile-$id -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v $work_path:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
                                           ^-^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                           ^-^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                                    ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   docker run -i --rm --name doris-compile-"$id" -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v $work_path:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 40:
       docker_name="doris-compile-"$(echo $RANDOM)
                                  ^-- SC1078 (warning): Did you forget to close this double quoted string?
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 42:
       cmd="docker run -i --rm --name doris-compile-$id -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v %system.teamcity.build.workingDir%:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
           ^-- SC1079 (info): This is actually an end quote, but due to next char it looks suspect.
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 43:
   "
   ^-- SC1073 (error): Couldn't parse this double quoted string. Fix to allow more checks.
   ^-- SC1009 (info): The mentioned syntax error was in this simple command.
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 45:
   
   ^-- SC1072 (error): Expected end of double quoted string. Fix any mentioned problems and try again.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 5:
   <<'COMMENT'
   ^---------^ SC2188 (warning): This redirection doesn't have a command. Move to its command (or use 'true' as no-op).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 145:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 147:
           --cancel_running_build) build_id=$2; cancel_running_build $build_id; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --cancel_running_build) build_id=$2; cancel_running_build "$build_id"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 148:
           --cancel_pending_build) build_id=$2; cancel_pending_build $build_id; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --cancel_pending_build) build_id=$2; cancel_pending_build "$build_id"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 149:
           --show_build_state) build_id=$2; res=$(show_build_state $build_id); echo $res; shift ;;
                                                                   ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                   ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --show_build_state) build_id=$2; res=$(show_build_state "$build_id"); echo $res; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 150:
           --show_build_status) build_id=$2; res=$(show_build_status $build_id); echo $res; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                      ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                      ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --show_build_status) build_id=$2; res=$(show_build_status "$build_id"); echo $res; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 153:
           --get_all_builds_of_pr_id) get_all_builds $2; shift ;;
                                                     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --get_all_builds_of_pr_id) get_all_builds "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 161:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 4:
   zcp_TOKEN="eyJ0eXAiOiAiVENWMiJ9.bW1DcHJpRWNCSktnREhLaHd5Y1lndmpycnJ3.NmEwM2E3YTEtMTVmYy00NGU0LWI1OTAtMzU3MzljODE0Njdk"
   ^-------^ SC2034 (warning): zcp_TOKEN appears unused. Verify use (or export if used externally).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 7:
   zcp_TEAMCITY_SERVER="http://43.129.232.36:8111"
   ^-----------------^ SC2034 (warning): zcp_TEAMCITY_SERVER appears unused. Verify use (or export if used externally).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 40:
       state=$(show_build_state $build_id)
                                ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(show_build_state "$build_id")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 41:
       if [[ $state == "running" ]];then
             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${state} == "running" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 43:
           cmd="/app/rest/builds/id:$build_id"
                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd="/app/rest/builds/id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 44:
           cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
               ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd=${cmd}" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 45:
           url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                        ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                  ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                 ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                          ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                           ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 46:
           res=$(eval $eval)
                      ^---^ SC2154 (warning): eval is referenced but not assigned (for output from commands, use "$(eval ...)" ).
                      ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=$(eval "$eval")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 47:
           check=$(echo $res |grep status="UNKNOWN")
                        ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                        ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check=$(echo "$res" |grep status="UNKNOWN")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 48:
           if [[ -z $check ]];then
                    ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ -z ${check} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 57:
       state=$(show_build_state $build_id)
                                ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(show_build_state "$build_id")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 58:
       if [[ $state == "queued" ]];then
             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${state} == "queued" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 59:
           cmd="app/rest/buildQueue/id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd="app/rest/buildQueue/id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 60:
           cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
               ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd=${cmd}" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 61:
           url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                        ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                  ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                 ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                          ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                           ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 63:
           res=$(eval $eval)
                      ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=$(eval "$eval")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 64:
           check=$(echo $res |grep status="UNKNOWN")
                        ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                        ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check=$(echo "$res" |grep status="UNKNOWN")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 65:
           if [[ -z $check ]];then
                    ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ -z ${check} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 73:
       cmd="app/rest/builds?locator=id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 74:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 76:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 79:
       check=$(echo $res|grep "<builds count=\"1\"")
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       check=$(echo "$res"|grep "<builds count=\"1\"")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 80:
       if [[ -z $check ]]; then
                ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ -z ${check} ]]; then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 84:
       state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                   ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(echo "$res" |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g')
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 86:
       echo $state
            ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "$state"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 91:
       cmd="app/rest/builds?locator=id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 92:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 94:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 96:
       check1=$(echo $res|grep "<builds count=\"1\"")
                     ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                     ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       check1=$(echo "$res"|grep "<builds count=\"1\"")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 97:
       if [[ -z $check1 ]]; then
                ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ -z ${check1} ]]; then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 105:
       state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                   ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(echo "$res" |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g')
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 107:
       echo $state
            ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "$state"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 112:
       cmd="app/rest/builds?locator=branch:$branch"
                                           ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=branch:${branch}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 113:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 114:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 119:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                           ^-^ SC2089 (warning): Quotes/backslashes will be treated literally. Use an array.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 121:
       res=eval $url
       ^-----------^ SC2209 (warning): Use var=$(command) to assign output (or quote to assign string).
                ^--^ SC2090 (warning): Quotes/backslashes in this variable will not be respected.
                ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=eval ${url}
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 126:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $JSON_HEADER $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                   ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${JSON_HEADER} ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 128:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 12:
       while [ 1 -eq 1 ]
             ^---------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                 ^-^ SC2050 (warning): This expression is constant. Did you forget the $ on a variable?
   
   Did you mean: 
       while [[ 1 -eq 1 ]]
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 15:
   	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
                ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                              ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                            ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                    ^-------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^---^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files?per_page="$per_page"\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 17:
           if [ ${res_len} -ne 0 ];then
              ^------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           if [[ "${res_len}" -ne 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 18:
   	    let page+=1
               ^---------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 20:
   	    files=(${res[@]} ${files[*]})
                      ^-------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
                                ^---------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 30:
   out=($(get_all_change_files 11154))
        ^---------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check.sh line 3:
   <<'COMMENT'
   ^---------^ SC2188 (warning): This redirection doesn't have a command. Move to its command (or use 'true' as no-op).
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 26:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 30:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 33:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 34:
           if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 35:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 46:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 60:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 65:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 68:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 69:
           if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "be" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 70:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 74:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 88:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 93:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 96:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 97:
           if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "fe" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 98:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 102:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 113:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 115:
           --is_modify_only_invoved_be) check_all_change_files_is_under_be $2; shift ;;
                                                                           ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --is_modify_only_invoved_be) check_all_change_files_is_under_be "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 116:
           --is_modify_only_invoved_fe) check_all_change_files_is_under_fe $2; shift ;;
                                                                           ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --is_modify_only_invoved_fe) check_all_change_files_is_under_fe "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 117:
   	--is_modify_only_doc) check_all_change_files_is_under_doc $2; shift ;;
                                                                     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	--is_modify_only_doc) check_all_change_files_is_under_doc "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 124:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   For more information:
     https://www.shellcheck.net/wiki/SC2068 -- Double quote array expansions to ...
     https://www.shellcheck.net/wiki/SC2071 -- > is for string comparisons. Use ...
     https://www.shellcheck.net/wiki/SC1078 -- Did you forget to close this doub...
   ----------
   
   You can address the above issues in one of three ways:
   1. Manually correct the issue in the offending shell script;
   2. Disable specific issues by adding the comment:
     # shellcheck disable=NNNN
   above the line that contains the issue, where NNNN is the error code;
   3. Add '-e NNNN' to the SHELLCHECK_OPTS setting in your .yml action file.
   
   
   
   ```
   </details>
   
   <details>
   <summary>shfmt errors</summary>
   
   ```
   
   'shfmt ' returned error 1 finding the following formatting issues:
   
   ----------
   --- bin/start_be.sh.orig
   +++ bin/start_be.sh
   @@ -233,4 +233,3 @@
        export DORIS_LOG_TO_STDERR=1
        ${LIMIT:+${LIMIT}} "${DORIS_HOME}/lib/doris_be" "$@" 2>&1 </dev/null
    fi
   -
   --- teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh
   @@ -8,23 +8,22 @@
    echo "===================================="
    echo "START TO DETECT RESIDUAL PROCESSES!"
    
   -check=$(lsof -i:$port|awk '{print $2}'|wc -l)
   -if [ "check$check" != "check0" ];then
   -    if [ "check"${case_level} == "check" ];then
   -        check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep deleted||wc -l)
   +check=$(lsof -i:$port | awk '{print $2}' | wc -l)
   +if [ "check$check" != "check0" ]; then
   +    if [ "check"${case_level} == "check" ]; then
   +        check_res=$(pwdx $(lsof -i:$port | grep -v PID | awk '{print $2}') | grep $env_name | grep deleted || wc -l)
        else
   -        check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep $case_level|grep deleted||wc -l)
   +        check_res=$(pwdx $(lsof -i:$port | grep -v PID | awk '{print $2}') | grep $env_name | grep $case_level | grep deleted || wc -l)
        fi
   -    if [ "check$check_res" != "check0" ];then
   -        be_pid=(`lsof -i:$port|grep -v PID|awk '{print $2}'`)
   +    if [ "check$check_res" != "check0" ]; then
   +        be_pid=($(lsof -i:$port | grep -v PID | awk '{print $2}'))
            echo "Detected residual processes: ${be_pid}"
            echo "kill residual processes: kill -9 ${be_pid}"
            kill -9 $be_pid
        fi
    else
   -        echo "No residual processes"
   +    echo "No residual processes"
    fi
    
   -
    echo "FINISH DETECT RESIDUAL PROCESSES!"
    echo "==================================="
   --- teamcity/doris/benchmark/clickbench/common/check_change_file.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/check_change_file.sh
   @@ -7,7 +7,7 @@
    GITHUB_TOKEN=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
    
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
    
   @@ -16,23 +16,21 @@
        $0 --is_modify_only_invoved_fe pr_id          if pr changed code only invoved fe doc, fs_brocker, return 0; else return 2
        $0 --is_modify_only_invoved_doc pr_id         if pr changed code only invoved doc, fs_brocker, return 0; else return 2
      "
   -  exit 1
   +    exit 1
    }
    
   -
   -function get_all_change_files(){
   +function get_all_change_files() {
        pr_id=$1
        files=()
    
        page=1
        per_page=100
   -    while [ 1 -eq 1 ]
   -    do
   +    while [ 1 -eq 1 ]; do
            #echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   -        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   +        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page | jq -r '.[]|select(.status = "removed")| .filename'))
            res_len=${#res[@]}
            #echo "================"$res_len
   -        if [ ${res_len} -ne 0 ];then
   +        if [ ${res_len} -ne 0 ]; then
                let page+=1
                #files="${res[@]}""$files"
                files=(${res[@]} ${files[*]})
   @@ -44,8 +42,7 @@
        echo "${files[@]}"
    }
    
   -
   -function check_removed_change_file(){
   +function check_removed_change_file() {
        pr_id=$1
        module=$2
        owner='apache'
   @@ -55,26 +52,25 @@
        file_nums=${#res[@]}
        is_code_change_flag=false
        module_file=0
   -    for file in ${res[@]}
   -    do
   -	#echo "$file"
   -	file_dir=$(echo $file|cut -d '/' -f 1)
   -        file_type=$(echo $file|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
   -	#if [[  "check$file_dir" == "check${module}" &&  ($file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js') ]];then
   -	if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]];then
   -	    echo "code has changed, ${file} is deleted"
   -	    is_code_change_flag=true
   -	fi
   -	if [[ "check$file_dir" == "check${module}" ]];then
   +    for file in ${res[@]}; do
   +        #echo "$file"
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        file_type=$(echo $file | rev | cut -d / -f 1 | cut -d '.' -f 1 | rev)
   +        #if [[  "check$file_dir" == "check${module}" &&  ($file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js') ]];then
   +        if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]]; then
   +            echo "code has changed, ${file} is deleted"
   +            is_code_change_flag=true
   +        fi
   +        if [[ "check$file_dir" == "check${module}" ]]; then
                let module_file+=1
   -	fi
   +        fi
        done
    
   -    if [[ "${is_code_change_flag}" == "false" ]];then
   -	echo "NO CODE FILE DELETED, PASSED!"
   +    if [[ "${is_code_change_flag}" == "false" ]]; then
   +        echo "NO CODE FILE DELETED, PASSED!"
            return 0
        else
   -	echo "CODE FILE BE DELETED"
   +        echo "CODE FILE BE DELETED"
            return 2
        fi
    
   @@ -95,20 +91,18 @@
    
        doc_num=0
        doc_sql_manual_num=0
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on docs/fs_brokers or not
   -	echo "$file"
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -	if [[ $file_dir == "docs" ]];then
   +        echo "$file"
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "docs" ]]; then
                let doc_num+=1
   -	fi
   -        if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]];then
   +        fi
   +        if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]]; then
                let doc_sql_manual_num+=1
                continue
            fi
    
   -
            #check change file is md/txt/doc file
            #file_type=$(echo $file|cut -d '.' -f 2)
            #if [[ $file_type == "md" || $file_type == "txt" || $file_type == "doc" ]];then
   @@ -120,7 +114,7 @@
        echo "doc_num: $doc_num"
        echo "file_nums: $file_nums"
        echo "doc_sql_manual_num: $doc_sql_manual_num"
   -    if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]];then
   +    if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]]; then
            echo "JUST MODIFY DOCUMENT, NO COED CHSNGED, PASSED!"
            return 0
        else
   @@ -143,17 +137,16 @@
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED BE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            echo "$file"
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
   -	fi
   +        fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY BE CODE, NO NEED RUN FE UT, PASSED!"
            return 0
        else
   @@ -176,17 +169,16 @@
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED FE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            echo "$file"
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY FE CODE, NO NEED RUN BE UT, PASSED!"
            return 0
        else
   @@ -197,42 +189,49 @@
    
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in
   +    if [ $# ] >0; then
   +        case "$1" in
            --is_modify_only_invoved_be)
   -	    check_removed_change_file $2 "be"
   -	    check_1=$?
   -	    check_all_change_files_is_under_be $2
   -	    check_2=$?
   -	    echo ${check_1}
   -	    echo ${check_2}
   -	    res=`expr $check_1 \* $check_2`
   -	    exit $res
   -	    shift ;;
   +            check_removed_change_file $2 "be"
   +            check_1=$?
   +            check_all_change_files_is_under_be $2
   +            check_2=$?
   +            echo ${check_1}
   +            echo ${check_2}
   +            res=$(expr $check_1 \* $check_2)
   +            exit $res
   +            shift
   +            ;;
            --is_modify_only_invoved_fe)
   -	    check_removed_change_file $2 "fe"
   -	    check_1=$?
   -	    check_all_change_files_is_under_fe $2
   -	    check_2=$?
   -            res=`expr $check_1 \* $check_2`
   -	    echo ${check_1}
   -	    echo ${check_2}
   -	    exit $res
   -	    shift ;;
   -	--is_modify_only_invoved_doc)
   -	    check_removed_change_file $2 "docs"
   -	    check_1=$?
   -	    check_all_change_files_is_under_doc $2
   -	    check_2=$?
   -            res=`expr $check_1 + $check_2`
   -	    echo ${check_1}
   +            check_removed_change_file $2 "fe"
   +            check_1=$?
   +            check_all_change_files_is_under_fe $2
   +            check_2=$?
   +            res=$(expr $check_1 \* $check_2)
   +            echo ${check_1}
                echo ${check_2}
   -	    exit $res
   -	    shift ;;
   -        *) echo "ERROR"; usage; exit 1 ;;
   -    esac
   +            exit $res
   +            shift
   +            ;;
   +        --is_modify_only_invoved_doc)
   +            check_removed_change_file $2 "docs"
   +            check_1=$?
   +            check_all_change_files_is_under_doc $2
   +            check_2=$?
   +            res=$(expr $check_1 + $check_2)
   +            echo ${check_1}
   +            echo ${check_2}
   +            exit $res
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            usage
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/common/clean_disk.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/clean_disk.sh
   @@ -3,7 +3,7 @@
    df -h
    existsTime=720
    #delete files created 20 hours ago
   -echo `date "+%Y-%m-%d %H:%M:%S"` "start to clear oudate file!"
   +echo $(date "+%Y-%m-%d %H:%M:%S") "start to clear oudate file!"
    cd /home/work/teamcity/TeamCity/piplineWork/Compile/
    find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
    cd -
   teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh:43:1: reached EOF without closing quote "
   --- teamcity/doris/benchmark/clickbench/common/teamcity_api.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/teamcity_api.sh
   @@ -139,23 +139,55 @@
    }
    COMMENT
    
   -
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in 
   -        --cancel_running_build) build_id=$2; cancel_running_build $build_id; shift ;;
   -        --cancel_pending_build) build_id=$2; cancel_pending_build $build_id; shift ;;
   -        --show_build_state) build_id=$2; res=$(show_build_state $build_id); echo $res; shift ;;
   -        --show_build_status) build_id=$2; res=$(show_build_status $build_id); echo $res; shift ;;
   -        --show_latest_builds) get_latest_builds; shift ;;
   -        --show_queued_builds) get_queued_builds; shift ;;
   -        --get_all_builds_of_pr_id) get_all_builds $2; shift ;;
   -	--help) usage; shift ;;
   -        *) echo "ERROR"; exit 1 ;;
   -    esac
   +    if [ $# ] >0; then
   +        case "$1" in
   +        --cancel_running_build)
   +            build_id=$2
   +            cancel_running_build $build_id
   +            shift
   +            ;;
   +        --cancel_pending_build)
   +            build_id=$2
   +            cancel_pending_build $build_id
   +            shift
   +            ;;
   +        --show_build_state)
   +            build_id=$2
   +            res=$(show_build_state $build_id)
   +            echo $res
   +            shift
   +            ;;
   +        --show_build_status)
   +            build_id=$2
   +            res=$(show_build_status $build_id)
   +            echo $res
   +            shift
   +            ;;
   +        --show_latest_builds)
   +            get_latest_builds
   +            shift
   +            ;;
   +        --show_queued_builds)
   +            get_queued_builds
   +            shift
   +            ;;
   +        --get_all_builds_of_pr_id)
   +            get_all_builds $2
   +            shift
   +            ;;
   +        --help)
   +            usage
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/common/teamcity_common.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/teamcity_common.sh
   @@ -11,7 +11,7 @@
    JSON_HEADER="--header \"Accept: application/json\""
    
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
         --cancel_running_build build_id    cancel a specific running build
   @@ -32,21 +32,21 @@
        $0 --show_queued_builds             show all queued builds
        $0 --get_all_builds_of_pr_id 9151   get all 9151 builds
      "
   -  exit 1
   +    exit 1
    }
    
    cancel_running_build() {
        build_id=$1
        state=$(show_build_state $build_id)
   -    if [[ $state == "running" ]];then
   +    if [[ $state == "running" ]]; then
            #curl --header "Authorization: Bearer eyJ0eXAiOiAiVENWMiJ9.bW1DcHJpRWNCSktnREhLaHd5Y1lndmpycnJ3.NmEwM2E3YTEtMTVmYy00NGU0LWI1OTAtMzU3MzljODE0Njdk" http://43.129.232.36:8111/app/rest/builds/id:333 -X POST -H 'Content-Type: application/json' -d '{ "buildCancelRequest": {       "comment": "Already running builds will be stopped.",      "readdIntoQueue": "false"    }  }'
            cmd="/app/rest/builds/id:$build_id"
            cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
            url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
            res=$(eval $eval)
   -        check=$(echo $res |grep status="UNKNOWN")
   -        if [[ -z $check ]];then
   -           echo "cancel fail!"
   +        check=$(echo $res | grep status="UNKNOWN")
   +        if [[ -z $check ]]; then
   +            echo "cancel fail!"
            fi
        fi
    
   @@ -55,15 +55,15 @@
    cancel_pending_build() {
        build_id=$1
        state=$(show_build_state $build_id)
   -    if [[ $state == "queued" ]];then
   +    if [[ $state == "queued" ]]; then
            cmd="app/rest/buildQueue/id:$build_id"
            cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
            url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
            #echo $url
            res=$(eval $eval)
   -        check=$(echo $res |grep status="UNKNOWN")
   -        if [[ -z $check ]];then
   -           echo "cancel fail!"
   +        check=$(echo $res | grep status="UNKNOWN")
   +        if [[ -z $check ]]; then
   +            echo "cancel fail!"
            fi
        fi
    }
   @@ -73,15 +73,15 @@
        cmd="app/rest/builds?locator=id:$build_id"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   -    
   +    res=$(eval $url)
   +
        #check build exist or not
   -    check=$(echo $res|grep "<builds count=\"1\"")
   +    check=$(echo $res | grep "<builds count=\"1\"")
        if [[ -z $check ]]; then
            return
        fi
        #get state
   -    state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
   +    state=$(echo $res | awk -F ' ' '{print $9" "$10" "$11}' | awk -F "state=" '{print $2}' | cut -d ' ' -f 1 | sed 's/\"//g')
        #only 2 state: queued and finished
        echo $state
    }
   @@ -91,9 +91,9 @@
        cmd="app/rest/builds?locator=id:$build_id"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   +    res=$(eval $url)
        #check build exist or not
   -    check1=$(echo $res|grep "<builds count=\"1\"")
   +    check1=$(echo $res | grep "<builds count=\"1\"")
        if [[ -z $check1 ]]; then
            return
        fi
   @@ -102,8 +102,8 @@
        #if [[ -z $check ]]; then
        #    return
        #fi
   -    state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
   -    #only 2 state: 
   +    state=$(echo $res | awk -F ' ' '{print $9" "$10" "$11}' | awk -F "status=" '{print $2}' | cut -d ' ' -f 1 | sed 's/\"//g')
   +    #only 2 state:
        echo $state
    }
    
   @@ -111,7 +111,7 @@
        branch=$1
        cmd="app/rest/builds?locator=branch:$branch"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
   -    res=`eval $url`
   +    res=$(eval $url)
    }
    
    get_latest_builds() {
   @@ -125,14 +125,12 @@
        cmd="app/rest/buildQueue"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $JSON_HEADER $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   +    res=$(eval $url)
        #a=$(echo $res|grep -oP 'build id=.*'|head -1)
   -    
   -    
   +
        #a=$res
        #while [[ "check"$a != "check" ]]
        #do
        #    a=$(echo $a|awk -F 'build id="' '{print $2}')
        #done
    }
   -
   --- teamcity/doris/benchmark/clickbench/common/test.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/test.sh
   @@ -3,33 +3,29 @@
    repo=doris
    GITHUB_TOKEN=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
    
   -function get_all_change_files(){
   +function get_all_change_files() {
        pr_id=$1
        files=()
    
        page=1
        per_page=100
   -    while [ 1 -eq 1 ]
   -    do
   -	#echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   -	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   +    while [ 1 -eq 1 ]; do
   +        #echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   +        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page | jq -r '.[]|select(.status = "removed")| .filename'))
            res_len=${#res[@]}
   -        if [ ${res_len} -ne 0 ];then
   -	    let page+=1
   +        if [ ${res_len} -ne 0 ]; then
   +            let page+=1
                #files="${res[@]}""$files"
   -	    files=(${res[@]} ${files[*]})
   +            files=(${res[@]} ${files[*]})
            else
                break
            fi
   -	echo 
   +        echo
        done
        echo "${files[@]}"
    }
    
   -
    out=($(get_all_change_files 11154))
    
   -
   -
    echo "=================="
    echo "${out[@]}"
   --- teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh
   @@ -3,9 +3,8 @@
    #res=(`git diff --name-only HEAD~ HEAD`)
    #file_nums=${#res[@]}
    
   -
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
    
   @@ -14,24 +13,22 @@
        $0 --is_modify_only_invoved_fe pr_id          if pr changed code only invoved fe doc, fs_brocker, return 0; else return 2
        $0 --is_modify_only_invoved_doc pr_id         if pr changed code only invoved doc, fs_brocker, return 0; else return 2
      "
   -  exit 1
   +    exit 1
    }
    
   -
    function check_all_change_files_is_under_doc() {
    
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on docs/fs_brokers or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
   @@ -43,7 +40,7 @@
            #fi
        done
    
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY DOCUMENT, NO COED CHSNGED, PASSED!"
            exit 0
        else
   @@ -57,21 +54,20 @@
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED BE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
   -	fi
   +        fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY BE CODE, NO NEED RUN FE UT, PASSED!"
            exit 0
        else
   @@ -85,21 +81,20 @@
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED FE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY FE CODE, NO NEED RUN BE UT, PASSED!"
            exit 0
        else
   @@ -110,15 +105,28 @@
    
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in
   -        --is_modify_only_invoved_be) check_all_change_files_is_under_be $2; shift ;;
   -        --is_modify_only_invoved_fe) check_all_change_files_is_under_fe $2; shift ;;
   -	--is_modify_only_doc) check_all_change_files_is_under_doc $2; shift ;;
   -        *) echo "ERROR"; usage; exit 1 ;;
   -    esac
   +    if [ $# ] >0; then
   +        case "$1" in
   +        --is_modify_only_invoved_be)
   +            check_all_change_files_is_under_be $2
   +            shift
   +            ;;
   +        --is_modify_only_invoved_fe)
   +            check_all_change_files_is_under_fe $2
   +            shift
   +            ;;
   +        --is_modify_only_doc)
   +            check_all_change_files_is_under_doc $2
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            usage
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/prepare.sh.orig
   +++ teamcity/doris/benchmark/clickbench/prepare.sh
   @@ -22,9 +22,3 @@
    fi
    qa_home="${pipeline_home}/selectdb-qa"
    cd "${qa_home}" && git stash && git checkout main && git pull && cd -
   -
   -
   -
   -
   -
   -
   ----------
   
   You can reformat the above files to meet shfmt's requirements by typing:
   
     shfmt  -w filename
   
   
   ```
   </details>
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] hello-stephen commented on pull request #13259: test benchmark pipeline

Posted by GitBox <gi...@apache.org>.
hello-stephen commented on PR #13259:
URL: https://github.com/apache/doris/pull/13259#issuecomment-1278425286

   test comment


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] github-actions[bot] commented on pull request #13259: test benchmark pipeline

Posted by GitBox <gi...@apache.org>.
github-actions[bot] commented on PR #13259:
URL: https://github.com/apache/doris/pull/13259#issuecomment-1273330241

   #### `sh-checker report`
   
   To get the full details, please check in the [job]("https://github.com/apache/doris/actions/runs/3219583062") output.
   
   <details>
   <summary>shellcheck errors</summary>
   
   ```
   
   'shellcheck ' returned error 1 finding the following syntactical issues:
   
   ----------
   
   In benchmark/clickbench/prepare.sh line 9:
   checkout_home=$(pwd)
   ^-----------^ SC2034 (warning): checkout_home appears unused. Verify use (or export if used externally).
   
   
   In benchmark/clickbench/prepare.sh line 14:
   cd "$prepare_home"
       ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   cd "${prepare_home}"
   
   
   In benchmark/clickbench/prepare.sh line 15:
   if [[ ! -d "$prepare_home/selectdb-qa" ]]; then
               ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   if [[ ! -d "${prepare_home}/selectdb-qa" ]]; then
   
   
   In benchmark/clickbench/prepare.sh line 19:
   qa_home="$prepare_home/selectdb-qa"
            ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   qa_home="${prepare_home}/selectdb-qa"
   
   
   In benchmark/clickbench/prepare.sh line 20:
   cd "$qa_home" && git stash && git checkout main && git pull && cd -
       ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   cd "${qa_home}" && git stash && git checkout main && git pull && cd -
   
   For more information:
     https://www.shellcheck.net/wiki/SC2034 -- checkout_home appears unused. Ver...
     https://www.shellcheck.net/wiki/SC2250 -- Prefer putting braces around vari...
   ----------
   
   You can address the above issues in one of three ways:
   1. Manually correct the issue in the offending shell script;
   2. Disable specific issues by adding the comment:
     # shellcheck disable=NNNN
   above the line that contains the issue, where NNNN is the error code;
   3. Add '-e NNNN' to the SHELLCHECK_OPTS setting in your .yml action file.
   
   
   
   ```
   </details>
   
   <details>
   <summary>shfmt errors</summary>
   
   ```
   
   'shfmt ' returned error 1 finding the following formatting issues:
   
   ----------
   --- benchmark/clickbench/prepare.sh.orig
   +++ benchmark/clickbench/prepare.sh
   @@ -2,14 +2,11 @@
    
    echo 'check if skip'
    
   -
    set -ex
    
    prepare_home=/home/ec2-user/
    checkout_home=$(pwd)
    
   -
   -
    echo '====prepare===='
    cd "$prepare_home"
    if [[ ! -d "$prepare_home/selectdb-qa" ]]; then
   @@ -18,5 +15,3 @@
    echo 'update scripts from git@github.com:selectdb/selectdb-qa.git'
    qa_home="$prepare_home/selectdb-qa"
    cd "$qa_home" && git stash && git checkout main && git pull && cd -
   -
   -
   ----------
   
   You can reformat the above files to meet shfmt's requirements by typing:
   
     shfmt  -w filename
   
   
   ```
   </details>
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] github-actions[bot] commented on pull request #13259: test benchmark pipeline

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #13259:
URL: https://github.com/apache/doris/pull/13259#issuecomment-1565751998

   We're closing this PR because it hasn't been updated in a while.
   This isn't a judgement on the merit of the PR in any way. It's just a way of keeping the PR queue manageable.
   If you'd like to revive this PR, please reopen it and feel free a maintainer to remove the Stale tag!


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] github-actions[bot] closed pull request #13259: test benchmark pipeline

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] closed pull request #13259: test benchmark pipeline
URL: https://github.com/apache/doris/pull/13259


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] hello-stephen commented on pull request #13259: test benchmark pipeline

Posted by GitBox <gi...@apache.org>.
hello-stephen commented on PR #13259:
URL: https://github.com/apache/doris/pull/13259#issuecomment-1278436986

   https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/clickbench_pr_29133.html


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] yiguolei commented on pull request #13259: test benchmark pipeline

Posted by GitBox <gi...@apache.org>.
yiguolei commented on PR #13259:
URL: https://github.com/apache/doris/pull/13259#issuecomment-1278436051

   https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/clickbench_pr_29133.html


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] github-actions[bot] commented on pull request #13259: test benchmark pipeline

Posted by GitBox <gi...@apache.org>.
github-actions[bot] commented on PR #13259:
URL: https://github.com/apache/doris/pull/13259#issuecomment-1297542415

   #### `sh-checker report`
   
   To get the full details, please check in the [job]("https://github.com/apache/doris/actions/runs/3361859227") output.
   
   <details>
   <summary>shellcheck errors</summary>
   
   ```
   
   'shellcheck ' returned error 1 finding the following syntactical issues:
   
   ----------
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 11:
   check=$(lsof -i:$port|awk '{print $2}'|wc -l)
                   ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   check=$(lsof -i:"$port"|awk '{print $2}'|wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 12:
   if [ "check$check" != "check0" ];then
      ^---------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
              ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   if [[ "check${check}" != "check0" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 13:
       if [ "check"${case_level} == "check" ];then
          ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                   ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       if [[ "check""${case_level}" == "check" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 14:
           check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep deleted||wc -l)
                            ^-- SC2046 (warning): Quote this to prevent word splitting.
                            ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                     ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                     ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                              ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                              ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check_res=$(pwdx $(lsof -i:"$port"|grep -v PID|awk '{print $2}')|grep $env_name|grep deleted||wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 16:
           check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep $case_level|grep deleted||wc -l)
                            ^-- SC2046 (warning): Quote this to prevent word splitting.
                            ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                     ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                     ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                              ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                              ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                             ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                             ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check_res=$(pwdx $(lsof -i:"$port"|grep -v PID|awk '{print $2}')|grep $env_name|grep $case_level|grep deleted||wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 18:
       if [ "check$check_res" != "check0" ];then
          ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                  ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ "check${check_res}" != "check0" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 19:
           be_pid=(`lsof -i:$port|grep -v PID|awk '{print $2}'`)
                   ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                   ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                            ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                            ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           be_pid=($(lsof -i:"$port"|grep -v PID|awk '{print $2}'))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 20:
           echo "Detected residual processes: ${be_pid}"
                                              ^-------^ SC2128 (warning): Expanding an array without an index only gives the first element.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 21:
           echo "kill residual processes: kill -9 ${be_pid}"
                                                  ^-------^ SC2128 (warning): Expanding an array without an index only gives the first element.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 22:
           kill -9 $be_pid
                   ^-----^ SC2128 (warning): Expanding an array without an index only gives the first element.
                   ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           kill -9 "$be_pid"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 29:
       while [ 1 -eq 1 ]
             ^---------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                 ^-^ SC2050 (warning): This expression is constant. Did you forget the $ on a variable?
   
   Did you mean: 
       while [[ 1 -eq 1 ]]
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 32:
           res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
                ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                              ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                            ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                    ^-------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^---^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files?per_page="$per_page"\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 35:
           if [ ${res_len} -ne 0 ];then
              ^------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           if [[ "${res_len}" -ne 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 36:
               let page+=1
               ^---------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 38:
               files=(${res[@]} ${files[*]})
                      ^-------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
                                ^---------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 54:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 58:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 61:
   	file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 62:
           file_type=$(echo $file|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
                            ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                            ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_type=$(echo "$file"|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 64:
   	if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]];then
                 ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                     ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                           ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ ${file_type} == "cpp" || ${file_type} == "c" || ${file_type} == "java" || ${file_type} == "py" || ${file_type} == "h" || ${file_type} == 'js' ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 68:
   	if [[ "check$file_dir" == "check${module}" ]];then
                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ "check${file_dir}" == "check${module}" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 69:
               let module_file+=1
               ^----------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 89:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 98:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 101:
   	echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 102:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 103:
   	if [[ $file_dir == "docs" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ ${file_dir} == "docs" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 104:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 106:
           if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]];then
                  ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                              ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ "${file}" =~ "docs/zh-CN/docs/sql-manual/" || "${file}" =~ "docs/en/docs/sql-manual/" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 107:
               let doc_sql_manual_num+=1
               ^-----------------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 120:
       echo "doc_num: $doc_num"
                      ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "doc_num: ${doc_num}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 121:
       echo "file_nums: $file_nums"
                        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "file_nums: ${file_nums}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 122:
       echo "doc_sql_manual_num: $doc_sql_manual_num"
                                 ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "doc_sql_manual_num: ${doc_sql_manual_num}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 123:
       if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} && ${doc_sql_manual_num} -eq 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 138:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 146:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 148:
           echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 150:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 151:
           if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "be" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 152:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 156:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 171:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 179:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 181:
           echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 183:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 184:
           if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "fe" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 185:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 189:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 200:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 203:
   	    check_removed_change_file $2 "be"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "be"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 205:
   	    check_all_change_files_is_under_be $2
                                                  ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_be "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 207:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 208:
   	    echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 209:
   	    res=`expr $check_1 \* $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    res=$(expr "$check_1" \* $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 210:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 213:
   	    check_removed_change_file $2 "fe"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "fe"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 215:
   	    check_all_change_files_is_under_fe $2
                                                  ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_fe "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 217:
               res=`expr $check_1 \* $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
               res=$(expr "$check_1" \* $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 218:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 219:
   	    echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 220:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 223:
   	    check_removed_change_file $2 "docs"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "docs"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 225:
   	    check_all_change_files_is_under_doc $2
                                                   ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_doc "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 227:
               res=`expr $check_1 + $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                    ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                    ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
               res=$(expr "$check_1" + $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 228:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 229:
               echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
               echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 230:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 238:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 6:
   echo `date "+%Y-%m-%d %H:%M:%S"` "start to clear oudate file!"
        ^-------------------------^ SC2046 (warning): Quote this to prevent word splitting.
        ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
   
   Did you mean: 
   echo $(date "+%Y-%m-%d %H:%M:%S") "start to clear oudate file!"
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 7:
   cd /home/work/teamcity/TeamCity/piplineWork/Compile/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/Compile/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 8:
   find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                         ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 9:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   ^--^ SC2103 (info): Use a ( subshell ) to avoid having to cd back.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 10:
   cd /home/work/teamcity/TeamCity/piplineWork/feUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/feUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 11:
   find /home/work/teamcity/TeamCity/piplineWork/feUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/feUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 12:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 13:
   cd /home/work/teamcity/TeamCity/piplineWork/beUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/beUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 14:
   find /home/work/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 15:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 16:
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 17:
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                         ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 18:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 19:
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 20:
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_compile.sh line 3:
   id=$(echo $RANDOM)
      ^-------------^ SC2116 (style): Useless echo? Instead of 'cmd $(echo foo)', just use 'cmd foo'.
             ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
             ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   id=$(echo "$RANDOM")
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_compile.sh line 5:
   docker run -i --rm --name doris-compile-$id -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v $work_path:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
                                           ^-^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                           ^-^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                                    ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   docker run -i --rm --name doris-compile-"$id" -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v $work_path:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 40:
       docker_name="doris-compile-"$(echo $RANDOM)
                                  ^-- SC1078 (warning): Did you forget to close this double quoted string?
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 42:
       cmd="docker run -i --rm --name doris-compile-$id -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v %system.teamcity.build.workingDir%:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
           ^-- SC1079 (info): This is actually an end quote, but due to next char it looks suspect.
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 43:
   "
   ^-- SC1073 (error): Couldn't parse this double quoted string. Fix to allow more checks.
   ^-- SC1009 (info): The mentioned syntax error was in this simple command.
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 45:
   
   ^-- SC1072 (error): Expected end of double quoted string. Fix any mentioned problems and try again.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 5:
   <<'COMMENT'
   ^---------^ SC2188 (warning): This redirection doesn't have a command. Move to its command (or use 'true' as no-op).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 145:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 147:
           --cancel_running_build) build_id=$2; cancel_running_build $build_id; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --cancel_running_build) build_id=$2; cancel_running_build "$build_id"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 148:
           --cancel_pending_build) build_id=$2; cancel_pending_build $build_id; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --cancel_pending_build) build_id=$2; cancel_pending_build "$build_id"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 149:
           --show_build_state) build_id=$2; res=$(show_build_state $build_id); echo $res; shift ;;
                                                                   ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                   ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --show_build_state) build_id=$2; res=$(show_build_state "$build_id"); echo $res; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 150:
           --show_build_status) build_id=$2; res=$(show_build_status $build_id); echo $res; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                      ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                      ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --show_build_status) build_id=$2; res=$(show_build_status "$build_id"); echo $res; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 153:
           --get_all_builds_of_pr_id) get_all_builds $2; shift ;;
                                                     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --get_all_builds_of_pr_id) get_all_builds "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 161:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 4:
   zcp_TOKEN="eyJ0eXAiOiAiVENWMiJ9.bW1DcHJpRWNCSktnREhLaHd5Y1lndmpycnJ3.NmEwM2E3YTEtMTVmYy00NGU0LWI1OTAtMzU3MzljODE0Njdk"
   ^-------^ SC2034 (warning): zcp_TOKEN appears unused. Verify use (or export if used externally).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 7:
   zcp_TEAMCITY_SERVER="http://43.129.232.36:8111"
   ^-----------------^ SC2034 (warning): zcp_TEAMCITY_SERVER appears unused. Verify use (or export if used externally).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 40:
       state=$(show_build_state $build_id)
                                ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(show_build_state "$build_id")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 41:
       if [[ $state == "running" ]];then
             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${state} == "running" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 43:
           cmd="/app/rest/builds/id:$build_id"
                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd="/app/rest/builds/id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 44:
           cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
               ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd=${cmd}" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 45:
           url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                        ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                  ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                 ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                          ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                           ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 46:
           res=$(eval $eval)
                      ^---^ SC2154 (warning): eval is referenced but not assigned (for output from commands, use "$(eval ...)" ).
                      ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=$(eval "$eval")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 47:
           check=$(echo $res |grep status="UNKNOWN")
                        ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                        ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check=$(echo "$res" |grep status="UNKNOWN")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 48:
           if [[ -z $check ]];then
                    ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ -z ${check} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 57:
       state=$(show_build_state $build_id)
                                ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(show_build_state "$build_id")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 58:
       if [[ $state == "queued" ]];then
             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${state} == "queued" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 59:
           cmd="app/rest/buildQueue/id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd="app/rest/buildQueue/id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 60:
           cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
               ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd=${cmd}" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 61:
           url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                        ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                  ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                 ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                          ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                           ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 63:
           res=$(eval $eval)
                      ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=$(eval "$eval")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 64:
           check=$(echo $res |grep status="UNKNOWN")
                        ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                        ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check=$(echo "$res" |grep status="UNKNOWN")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 65:
           if [[ -z $check ]];then
                    ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ -z ${check} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 73:
       cmd="app/rest/builds?locator=id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 74:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 76:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 79:
       check=$(echo $res|grep "<builds count=\"1\"")
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       check=$(echo "$res"|grep "<builds count=\"1\"")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 80:
       if [[ -z $check ]]; then
                ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ -z ${check} ]]; then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 84:
       state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                   ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(echo "$res" |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g')
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 86:
       echo $state
            ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "$state"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 91:
       cmd="app/rest/builds?locator=id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 92:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 94:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 96:
       check1=$(echo $res|grep "<builds count=\"1\"")
                     ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                     ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       check1=$(echo "$res"|grep "<builds count=\"1\"")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 97:
       if [[ -z $check1 ]]; then
                ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ -z ${check1} ]]; then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 105:
       state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                   ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(echo "$res" |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g')
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 107:
       echo $state
            ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "$state"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 112:
       cmd="app/rest/builds?locator=branch:$branch"
                                           ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=branch:${branch}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 113:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 114:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 119:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                           ^-^ SC2089 (warning): Quotes/backslashes will be treated literally. Use an array.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 121:
       res=eval $url
       ^-----------^ SC2209 (warning): Use var=$(command) to assign output (or quote to assign string).
                ^--^ SC2090 (warning): Quotes/backslashes in this variable will not be respected.
                ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=eval ${url}
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 126:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $JSON_HEADER $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                   ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${JSON_HEADER} ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 128:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 12:
       while [ 1 -eq 1 ]
             ^---------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                 ^-^ SC2050 (warning): This expression is constant. Did you forget the $ on a variable?
   
   Did you mean: 
       while [[ 1 -eq 1 ]]
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 15:
   	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
                ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                              ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                            ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                    ^-------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^---^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files?per_page="$per_page"\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 17:
           if [ ${res_len} -ne 0 ];then
              ^------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           if [[ "${res_len}" -ne 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 18:
   	    let page+=1
               ^---------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 20:
   	    files=(${res[@]} ${files[*]})
                      ^-------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
                                ^---------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 30:
   out=($(get_all_change_files 11154))
        ^---------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check.sh line 3:
   <<'COMMENT'
   ^---------^ SC2188 (warning): This redirection doesn't have a command. Move to its command (or use 'true' as no-op).
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 26:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 30:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 33:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 34:
           if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 35:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 46:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 60:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 65:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 68:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 69:
           if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "be" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 70:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 74:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 88:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 93:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 96:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 97:
           if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "fe" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 98:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 102:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 113:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 115:
           --is_modify_only_invoved_be) check_all_change_files_is_under_be $2; shift ;;
                                                                           ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --is_modify_only_invoved_be) check_all_change_files_is_under_be "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 116:
           --is_modify_only_invoved_fe) check_all_change_files_is_under_fe $2; shift ;;
                                                                           ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --is_modify_only_invoved_fe) check_all_change_files_is_under_fe "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 117:
   	--is_modify_only_doc) check_all_change_files_is_under_doc $2; shift ;;
                                                                     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	--is_modify_only_doc) check_all_change_files_is_under_doc "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 124:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   For more information:
     https://www.shellcheck.net/wiki/SC2068 -- Double quote array expansions to ...
     https://www.shellcheck.net/wiki/SC2071 -- > is for string comparisons. Use ...
     https://www.shellcheck.net/wiki/SC1078 -- Did you forget to close this doub...
   ----------
   
   You can address the above issues in one of three ways:
   1. Manually correct the issue in the offending shell script;
   2. Disable specific issues by adding the comment:
     # shellcheck disable=NNNN
   above the line that contains the issue, where NNNN is the error code;
   3. Add '-e NNNN' to the SHELLCHECK_OPTS setting in your .yml action file.
   
   
   
   ```
   </details>
   
   <details>
   <summary>shfmt errors</summary>
   
   ```
   
   'shfmt ' returned error 1 finding the following formatting issues:
   
   ----------
   --- teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh
   @@ -8,23 +8,22 @@
    echo "===================================="
    echo "START TO DETECT RESIDUAL PROCESSES!"
    
   -check=$(lsof -i:$port|awk '{print $2}'|wc -l)
   -if [ "check$check" != "check0" ];then
   -    if [ "check"${case_level} == "check" ];then
   -        check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep deleted||wc -l)
   +check=$(lsof -i:$port | awk '{print $2}' | wc -l)
   +if [ "check$check" != "check0" ]; then
   +    if [ "check"${case_level} == "check" ]; then
   +        check_res=$(pwdx $(lsof -i:$port | grep -v PID | awk '{print $2}') | grep $env_name | grep deleted || wc -l)
        else
   -        check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep $case_level|grep deleted||wc -l)
   +        check_res=$(pwdx $(lsof -i:$port | grep -v PID | awk '{print $2}') | grep $env_name | grep $case_level | grep deleted || wc -l)
        fi
   -    if [ "check$check_res" != "check0" ];then
   -        be_pid=(`lsof -i:$port|grep -v PID|awk '{print $2}'`)
   +    if [ "check$check_res" != "check0" ]; then
   +        be_pid=($(lsof -i:$port | grep -v PID | awk '{print $2}'))
            echo "Detected residual processes: ${be_pid}"
            echo "kill residual processes: kill -9 ${be_pid}"
            kill -9 $be_pid
        fi
    else
   -        echo "No residual processes"
   +    echo "No residual processes"
    fi
    
   -
    echo "FINISH DETECT RESIDUAL PROCESSES!"
    echo "==================================="
   --- teamcity/doris/benchmark/clickbench/common/check_change_file.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/check_change_file.sh
   @@ -7,7 +7,7 @@
    GITHUB_TOKEN=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
    
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
    
   @@ -16,23 +16,21 @@
        $0 --is_modify_only_invoved_fe pr_id          if pr changed code only invoved fe doc, fs_brocker, return 0; else return 2
        $0 --is_modify_only_invoved_doc pr_id         if pr changed code only invoved doc, fs_brocker, return 0; else return 2
      "
   -  exit 1
   +    exit 1
    }
    
   -
   -function get_all_change_files(){
   +function get_all_change_files() {
        pr_id=$1
        files=()
    
        page=1
        per_page=100
   -    while [ 1 -eq 1 ]
   -    do
   +    while [ 1 -eq 1 ]; do
            #echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   -        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   +        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page | jq -r '.[]|select(.status = "removed")| .filename'))
            res_len=${#res[@]}
            #echo "================"$res_len
   -        if [ ${res_len} -ne 0 ];then
   +        if [ ${res_len} -ne 0 ]; then
                let page+=1
                #files="${res[@]}""$files"
                files=(${res[@]} ${files[*]})
   @@ -44,8 +42,7 @@
        echo "${files[@]}"
    }
    
   -
   -function check_removed_change_file(){
   +function check_removed_change_file() {
        pr_id=$1
        module=$2
        owner='apache'
   @@ -55,26 +52,25 @@
        file_nums=${#res[@]}
        is_code_change_flag=false
        module_file=0
   -    for file in ${res[@]}
   -    do
   -	#echo "$file"
   -	file_dir=$(echo $file|cut -d '/' -f 1)
   -        file_type=$(echo $file|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
   -	#if [[  "check$file_dir" == "check${module}" &&  ($file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js') ]];then
   -	if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]];then
   -	    echo "code has changed, ${file} is deleted"
   -	    is_code_change_flag=true
   -	fi
   -	if [[ "check$file_dir" == "check${module}" ]];then
   +    for file in ${res[@]}; do
   +        #echo "$file"
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        file_type=$(echo $file | rev | cut -d / -f 1 | cut -d '.' -f 1 | rev)
   +        #if [[  "check$file_dir" == "check${module}" &&  ($file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js') ]];then
   +        if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]]; then
   +            echo "code has changed, ${file} is deleted"
   +            is_code_change_flag=true
   +        fi
   +        if [[ "check$file_dir" == "check${module}" ]]; then
                let module_file+=1
   -	fi
   +        fi
        done
    
   -    if [[ "${is_code_change_flag}" == "false" ]];then
   -	echo "NO CODE FILE DELETED, PASSED!"
   +    if [[ "${is_code_change_flag}" == "false" ]]; then
   +        echo "NO CODE FILE DELETED, PASSED!"
            return 0
        else
   -	echo "CODE FILE BE DELETED"
   +        echo "CODE FILE BE DELETED"
            return 2
        fi
    
   @@ -95,20 +91,18 @@
    
        doc_num=0
        doc_sql_manual_num=0
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on docs/fs_brokers or not
   -	echo "$file"
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -	if [[ $file_dir == "docs" ]];then
   +        echo "$file"
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "docs" ]]; then
                let doc_num+=1
   -	fi
   -        if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]];then
   +        fi
   +        if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]]; then
                let doc_sql_manual_num+=1
                continue
            fi
    
   -
            #check change file is md/txt/doc file
            #file_type=$(echo $file|cut -d '.' -f 2)
            #if [[ $file_type == "md" || $file_type == "txt" || $file_type == "doc" ]];then
   @@ -120,7 +114,7 @@
        echo "doc_num: $doc_num"
        echo "file_nums: $file_nums"
        echo "doc_sql_manual_num: $doc_sql_manual_num"
   -    if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]];then
   +    if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]]; then
            echo "JUST MODIFY DOCUMENT, NO COED CHSNGED, PASSED!"
            return 0
        else
   @@ -143,17 +137,16 @@
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED BE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            echo "$file"
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
   -	fi
   +        fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY BE CODE, NO NEED RUN FE UT, PASSED!"
            return 0
        else
   @@ -176,17 +169,16 @@
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED FE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            echo "$file"
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY FE CODE, NO NEED RUN BE UT, PASSED!"
            return 0
        else
   @@ -197,42 +189,49 @@
    
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in
   +    if [ $# ] >0; then
   +        case "$1" in
            --is_modify_only_invoved_be)
   -	    check_removed_change_file $2 "be"
   -	    check_1=$?
   -	    check_all_change_files_is_under_be $2
   -	    check_2=$?
   -	    echo ${check_1}
   -	    echo ${check_2}
   -	    res=`expr $check_1 \* $check_2`
   -	    exit $res
   -	    shift ;;
   +            check_removed_change_file $2 "be"
   +            check_1=$?
   +            check_all_change_files_is_under_be $2
   +            check_2=$?
   +            echo ${check_1}
   +            echo ${check_2}
   +            res=$(expr $check_1 \* $check_2)
   +            exit $res
   +            shift
   +            ;;
            --is_modify_only_invoved_fe)
   -	    check_removed_change_file $2 "fe"
   -	    check_1=$?
   -	    check_all_change_files_is_under_fe $2
   -	    check_2=$?
   -            res=`expr $check_1 \* $check_2`
   -	    echo ${check_1}
   -	    echo ${check_2}
   -	    exit $res
   -	    shift ;;
   -	--is_modify_only_invoved_doc)
   -	    check_removed_change_file $2 "docs"
   -	    check_1=$?
   -	    check_all_change_files_is_under_doc $2
   -	    check_2=$?
   -            res=`expr $check_1 + $check_2`
   -	    echo ${check_1}
   +            check_removed_change_file $2 "fe"
   +            check_1=$?
   +            check_all_change_files_is_under_fe $2
   +            check_2=$?
   +            res=$(expr $check_1 \* $check_2)
   +            echo ${check_1}
                echo ${check_2}
   -	    exit $res
   -	    shift ;;
   -        *) echo "ERROR"; usage; exit 1 ;;
   -    esac
   +            exit $res
   +            shift
   +            ;;
   +        --is_modify_only_invoved_doc)
   +            check_removed_change_file $2 "docs"
   +            check_1=$?
   +            check_all_change_files_is_under_doc $2
   +            check_2=$?
   +            res=$(expr $check_1 + $check_2)
   +            echo ${check_1}
   +            echo ${check_2}
   +            exit $res
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            usage
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/common/clean_disk.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/clean_disk.sh
   @@ -3,7 +3,7 @@
    df -h
    existsTime=720
    #delete files created 20 hours ago
   -echo `date "+%Y-%m-%d %H:%M:%S"` "start to clear oudate file!"
   +echo $(date "+%Y-%m-%d %H:%M:%S") "start to clear oudate file!"
    cd /home/work/teamcity/TeamCity/piplineWork/Compile/
    find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
    cd -
   teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh:43:1: reached EOF without closing quote "
   --- teamcity/doris/benchmark/clickbench/common/teamcity_api.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/teamcity_api.sh
   @@ -139,23 +139,55 @@
    }
    COMMENT
    
   -
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in 
   -        --cancel_running_build) build_id=$2; cancel_running_build $build_id; shift ;;
   -        --cancel_pending_build) build_id=$2; cancel_pending_build $build_id; shift ;;
   -        --show_build_state) build_id=$2; res=$(show_build_state $build_id); echo $res; shift ;;
   -        --show_build_status) build_id=$2; res=$(show_build_status $build_id); echo $res; shift ;;
   -        --show_latest_builds) get_latest_builds; shift ;;
   -        --show_queued_builds) get_queued_builds; shift ;;
   -        --get_all_builds_of_pr_id) get_all_builds $2; shift ;;
   -	--help) usage; shift ;;
   -        *) echo "ERROR"; exit 1 ;;
   -    esac
   +    if [ $# ] >0; then
   +        case "$1" in
   +        --cancel_running_build)
   +            build_id=$2
   +            cancel_running_build $build_id
   +            shift
   +            ;;
   +        --cancel_pending_build)
   +            build_id=$2
   +            cancel_pending_build $build_id
   +            shift
   +            ;;
   +        --show_build_state)
   +            build_id=$2
   +            res=$(show_build_state $build_id)
   +            echo $res
   +            shift
   +            ;;
   +        --show_build_status)
   +            build_id=$2
   +            res=$(show_build_status $build_id)
   +            echo $res
   +            shift
   +            ;;
   +        --show_latest_builds)
   +            get_latest_builds
   +            shift
   +            ;;
   +        --show_queued_builds)
   +            get_queued_builds
   +            shift
   +            ;;
   +        --get_all_builds_of_pr_id)
   +            get_all_builds $2
   +            shift
   +            ;;
   +        --help)
   +            usage
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/common/teamcity_common.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/teamcity_common.sh
   @@ -11,7 +11,7 @@
    JSON_HEADER="--header \"Accept: application/json\""
    
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
         --cancel_running_build build_id    cancel a specific running build
   @@ -32,21 +32,21 @@
        $0 --show_queued_builds             show all queued builds
        $0 --get_all_builds_of_pr_id 9151   get all 9151 builds
      "
   -  exit 1
   +    exit 1
    }
    
    cancel_running_build() {
        build_id=$1
        state=$(show_build_state $build_id)
   -    if [[ $state == "running" ]];then
   +    if [[ $state == "running" ]]; then
            #curl --header "Authorization: Bearer eyJ0eXAiOiAiVENWMiJ9.bW1DcHJpRWNCSktnREhLaHd5Y1lndmpycnJ3.NmEwM2E3YTEtMTVmYy00NGU0LWI1OTAtMzU3MzljODE0Njdk" http://43.129.232.36:8111/app/rest/builds/id:333 -X POST -H 'Content-Type: application/json' -d '{ "buildCancelRequest": {       "comment": "Already running builds will be stopped.",      "readdIntoQueue": "false"    }  }'
            cmd="/app/rest/builds/id:$build_id"
            cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
            url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
            res=$(eval $eval)
   -        check=$(echo $res |grep status="UNKNOWN")
   -        if [[ -z $check ]];then
   -           echo "cancel fail!"
   +        check=$(echo $res | grep status="UNKNOWN")
   +        if [[ -z $check ]]; then
   +            echo "cancel fail!"
            fi
        fi
    
   @@ -55,15 +55,15 @@
    cancel_pending_build() {
        build_id=$1
        state=$(show_build_state $build_id)
   -    if [[ $state == "queued" ]];then
   +    if [[ $state == "queued" ]]; then
            cmd="app/rest/buildQueue/id:$build_id"
            cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
            url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
            #echo $url
            res=$(eval $eval)
   -        check=$(echo $res |grep status="UNKNOWN")
   -        if [[ -z $check ]];then
   -           echo "cancel fail!"
   +        check=$(echo $res | grep status="UNKNOWN")
   +        if [[ -z $check ]]; then
   +            echo "cancel fail!"
            fi
        fi
    }
   @@ -73,15 +73,15 @@
        cmd="app/rest/builds?locator=id:$build_id"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   -    
   +    res=$(eval $url)
   +
        #check build exist or not
   -    check=$(echo $res|grep "<builds count=\"1\"")
   +    check=$(echo $res | grep "<builds count=\"1\"")
        if [[ -z $check ]]; then
            return
        fi
        #get state
   -    state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
   +    state=$(echo $res | awk -F ' ' '{print $9" "$10" "$11}' | awk -F "state=" '{print $2}' | cut -d ' ' -f 1 | sed 's/\"//g')
        #only 2 state: queued and finished
        echo $state
    }
   @@ -91,9 +91,9 @@
        cmd="app/rest/builds?locator=id:$build_id"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   +    res=$(eval $url)
        #check build exist or not
   -    check1=$(echo $res|grep "<builds count=\"1\"")
   +    check1=$(echo $res | grep "<builds count=\"1\"")
        if [[ -z $check1 ]]; then
            return
        fi
   @@ -102,8 +102,8 @@
        #if [[ -z $check ]]; then
        #    return
        #fi
   -    state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
   -    #only 2 state: 
   +    state=$(echo $res | awk -F ' ' '{print $9" "$10" "$11}' | awk -F "status=" '{print $2}' | cut -d ' ' -f 1 | sed 's/\"//g')
   +    #only 2 state:
        echo $state
    }
    
   @@ -111,7 +111,7 @@
        branch=$1
        cmd="app/rest/builds?locator=branch:$branch"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
   -    res=`eval $url`
   +    res=$(eval $url)
    }
    
    get_latest_builds() {
   @@ -125,14 +125,12 @@
        cmd="app/rest/buildQueue"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $JSON_HEADER $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   +    res=$(eval $url)
        #a=$(echo $res|grep -oP 'build id=.*'|head -1)
   -    
   -    
   +
        #a=$res
        #while [[ "check"$a != "check" ]]
        #do
        #    a=$(echo $a|awk -F 'build id="' '{print $2}')
        #done
    }
   -
   --- teamcity/doris/benchmark/clickbench/common/test.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/test.sh
   @@ -3,33 +3,29 @@
    repo=doris
    GITHUB_TOKEN=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
    
   -function get_all_change_files(){
   +function get_all_change_files() {
        pr_id=$1
        files=()
    
        page=1
        per_page=100
   -    while [ 1 -eq 1 ]
   -    do
   -	#echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   -	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   +    while [ 1 -eq 1 ]; do
   +        #echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   +        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page | jq -r '.[]|select(.status = "removed")| .filename'))
            res_len=${#res[@]}
   -        if [ ${res_len} -ne 0 ];then
   -	    let page+=1
   +        if [ ${res_len} -ne 0 ]; then
   +            let page+=1
                #files="${res[@]}""$files"
   -	    files=(${res[@]} ${files[*]})
   +            files=(${res[@]} ${files[*]})
            else
                break
            fi
   -	echo 
   +        echo
        done
        echo "${files[@]}"
    }
    
   -
    out=($(get_all_change_files 11154))
    
   -
   -
    echo "=================="
    echo "${out[@]}"
   --- teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh
   @@ -3,9 +3,8 @@
    #res=(`git diff --name-only HEAD~ HEAD`)
    #file_nums=${#res[@]}
    
   -
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
    
   @@ -14,24 +13,22 @@
        $0 --is_modify_only_invoved_fe pr_id          if pr changed code only invoved fe doc, fs_brocker, return 0; else return 2
        $0 --is_modify_only_invoved_doc pr_id         if pr changed code only invoved doc, fs_brocker, return 0; else return 2
      "
   -  exit 1
   +    exit 1
    }
    
   -
    function check_all_change_files_is_under_doc() {
    
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on docs/fs_brokers or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
   @@ -43,7 +40,7 @@
            #fi
        done
    
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY DOCUMENT, NO COED CHSNGED, PASSED!"
            exit 0
        else
   @@ -57,21 +54,20 @@
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED BE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
   -	fi
   +        fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY BE CODE, NO NEED RUN FE UT, PASSED!"
            exit 0
        else
   @@ -85,21 +81,20 @@
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED FE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY FE CODE, NO NEED RUN BE UT, PASSED!"
            exit 0
        else
   @@ -110,15 +105,28 @@
    
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in
   -        --is_modify_only_invoved_be) check_all_change_files_is_under_be $2; shift ;;
   -        --is_modify_only_invoved_fe) check_all_change_files_is_under_fe $2; shift ;;
   -	--is_modify_only_doc) check_all_change_files_is_under_doc $2; shift ;;
   -        *) echo "ERROR"; usage; exit 1 ;;
   -    esac
   +    if [ $# ] >0; then
   +        case "$1" in
   +        --is_modify_only_invoved_be)
   +            check_all_change_files_is_under_be $2
   +            shift
   +            ;;
   +        --is_modify_only_invoved_fe)
   +            check_all_change_files_is_under_fe $2
   +            shift
   +            ;;
   +        --is_modify_only_doc)
   +            check_all_change_files_is_under_doc $2
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            usage
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   ----------
   
   You can reformat the above files to meet shfmt's requirements by typing:
   
     shfmt  -w filename
   
   
   ```
   </details>
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] github-actions[bot] commented on pull request #13259: test benchmark pipeline

Posted by GitBox <gi...@apache.org>.
github-actions[bot] commented on PR #13259:
URL: https://github.com/apache/doris/pull/13259#issuecomment-1301609961

   #### `sh-checker report`
   
   To get the full details, please check in the [job]("https://github.com/apache/doris/actions/runs/3382847456") output.
   
   <details>
   <summary>shellcheck errors</summary>
   
   ```
   
   'shellcheck ' returned error 1 finding the following syntactical issues:
   
   ----------
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 11:
   check=$(lsof -i:$port|awk '{print $2}'|wc -l)
                   ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   check=$(lsof -i:"$port"|awk '{print $2}'|wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 12:
   if [ "check$check" != "check0" ];then
      ^---------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
              ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   if [[ "check${check}" != "check0" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 13:
       if [ "check"${case_level} == "check" ];then
          ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                   ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       if [[ "check""${case_level}" == "check" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 14:
           check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep deleted||wc -l)
                            ^-- SC2046 (warning): Quote this to prevent word splitting.
                            ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                     ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                     ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                              ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                              ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check_res=$(pwdx $(lsof -i:"$port"|grep -v PID|awk '{print $2}')|grep $env_name|grep deleted||wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 16:
           check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep $case_level|grep deleted||wc -l)
                            ^-- SC2046 (warning): Quote this to prevent word splitting.
                            ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                     ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                     ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                              ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                              ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                             ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                             ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check_res=$(pwdx $(lsof -i:"$port"|grep -v PID|awk '{print $2}')|grep $env_name|grep $case_level|grep deleted||wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 18:
       if [ "check$check_res" != "check0" ];then
          ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                  ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ "check${check_res}" != "check0" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 19:
           be_pid=(`lsof -i:$port|grep -v PID|awk '{print $2}'`)
                   ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                   ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                            ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                            ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           be_pid=($(lsof -i:"$port"|grep -v PID|awk '{print $2}'))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 20:
           echo "Detected residual processes: ${be_pid}"
                                              ^-------^ SC2128 (warning): Expanding an array without an index only gives the first element.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 21:
           echo "kill residual processes: kill -9 ${be_pid}"
                                                  ^-------^ SC2128 (warning): Expanding an array without an index only gives the first element.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 22:
           kill -9 $be_pid
                   ^-----^ SC2128 (warning): Expanding an array without an index only gives the first element.
                   ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           kill -9 "$be_pid"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 29:
       while [ 1 -eq 1 ]
             ^---------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                 ^-^ SC2050 (warning): This expression is constant. Did you forget the $ on a variable?
   
   Did you mean: 
       while [[ 1 -eq 1 ]]
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 32:
           res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
                ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                              ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                            ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                    ^-------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^---^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files?per_page="$per_page"\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 35:
           if [ ${res_len} -ne 0 ];then
              ^------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           if [[ "${res_len}" -ne 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 36:
               let page+=1
               ^---------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 38:
               files=(${res[@]} ${files[*]})
                      ^-------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
                                ^---------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 54:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 58:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 61:
   	file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 62:
           file_type=$(echo $file|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
                            ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                            ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_type=$(echo "$file"|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 64:
   	if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]];then
                 ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                     ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                           ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ ${file_type} == "cpp" || ${file_type} == "c" || ${file_type} == "java" || ${file_type} == "py" || ${file_type} == "h" || ${file_type} == 'js' ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 68:
   	if [[ "check$file_dir" == "check${module}" ]];then
                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ "check${file_dir}" == "check${module}" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 69:
               let module_file+=1
               ^----------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 89:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 98:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 101:
   	echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 102:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 103:
   	if [[ $file_dir == "docs" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ ${file_dir} == "docs" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 104:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 106:
           if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]];then
                  ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                              ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ "${file}" =~ "docs/zh-CN/docs/sql-manual/" || "${file}" =~ "docs/en/docs/sql-manual/" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 107:
               let doc_sql_manual_num+=1
               ^-----------------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 120:
       echo "doc_num: $doc_num"
                      ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "doc_num: ${doc_num}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 121:
       echo "file_nums: $file_nums"
                        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "file_nums: ${file_nums}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 122:
       echo "doc_sql_manual_num: $doc_sql_manual_num"
                                 ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "doc_sql_manual_num: ${doc_sql_manual_num}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 123:
       if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} && ${doc_sql_manual_num} -eq 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 138:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 146:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 148:
           echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 150:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 151:
           if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "be" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 152:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 156:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 171:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 179:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 181:
           echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 183:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 184:
           if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "fe" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 185:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 189:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 200:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 203:
   	    check_removed_change_file $2 "be"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "be"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 205:
   	    check_all_change_files_is_under_be $2
                                                  ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_be "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 207:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 208:
   	    echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 209:
   	    res=`expr $check_1 \* $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    res=$(expr "$check_1" \* $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 210:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 213:
   	    check_removed_change_file $2 "fe"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "fe"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 215:
   	    check_all_change_files_is_under_fe $2
                                                  ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_fe "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 217:
               res=`expr $check_1 \* $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
               res=$(expr "$check_1" \* $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 218:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 219:
   	    echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 220:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 223:
   	    check_removed_change_file $2 "docs"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "docs"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 225:
   	    check_all_change_files_is_under_doc $2
                                                   ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_doc "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 227:
               res=`expr $check_1 + $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                    ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                    ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
               res=$(expr "$check_1" + $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 228:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 229:
               echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
               echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 230:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 238:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 6:
   echo `date "+%Y-%m-%d %H:%M:%S"` "start to clear oudate file!"
        ^-------------------------^ SC2046 (warning): Quote this to prevent word splitting.
        ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
   
   Did you mean: 
   echo $(date "+%Y-%m-%d %H:%M:%S") "start to clear oudate file!"
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 7:
   cd /home/work/teamcity/TeamCity/piplineWork/Compile/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/Compile/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 8:
   find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                         ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 9:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   ^--^ SC2103 (info): Use a ( subshell ) to avoid having to cd back.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 10:
   cd /home/work/teamcity/TeamCity/piplineWork/feUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/feUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 11:
   find /home/work/teamcity/TeamCity/piplineWork/feUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/feUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 12:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 13:
   cd /home/work/teamcity/TeamCity/piplineWork/beUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/beUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 14:
   find /home/work/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 15:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 16:
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 17:
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                         ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 18:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 19:
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 20:
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_compile.sh line 3:
   id=$(echo $RANDOM)
      ^-------------^ SC2116 (style): Useless echo? Instead of 'cmd $(echo foo)', just use 'cmd foo'.
             ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
             ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   id=$(echo "$RANDOM")
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_compile.sh line 5:
   docker run -i --rm --name doris-compile-$id -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v $work_path:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
                                           ^-^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                           ^-^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                                    ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   docker run -i --rm --name doris-compile-"$id" -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v $work_path:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 40:
       docker_name="doris-compile-"$(echo $RANDOM)
                                  ^-- SC1078 (warning): Did you forget to close this double quoted string?
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 42:
       cmd="docker run -i --rm --name doris-compile-$id -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v %system.teamcity.build.workingDir%:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
           ^-- SC1079 (info): This is actually an end quote, but due to next char it looks suspect.
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 43:
   "
   ^-- SC1073 (error): Couldn't parse this double quoted string. Fix to allow more checks.
   ^-- SC1009 (info): The mentioned syntax error was in this simple command.
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 45:
   
   ^-- SC1072 (error): Expected end of double quoted string. Fix any mentioned problems and try again.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 5:
   <<'COMMENT'
   ^---------^ SC2188 (warning): This redirection doesn't have a command. Move to its command (or use 'true' as no-op).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 145:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 147:
           --cancel_running_build) build_id=$2; cancel_running_build $build_id; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --cancel_running_build) build_id=$2; cancel_running_build "$build_id"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 148:
           --cancel_pending_build) build_id=$2; cancel_pending_build $build_id; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --cancel_pending_build) build_id=$2; cancel_pending_build "$build_id"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 149:
           --show_build_state) build_id=$2; res=$(show_build_state $build_id); echo $res; shift ;;
                                                                   ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                   ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --show_build_state) build_id=$2; res=$(show_build_state "$build_id"); echo $res; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 150:
           --show_build_status) build_id=$2; res=$(show_build_status $build_id); echo $res; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                      ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                      ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --show_build_status) build_id=$2; res=$(show_build_status "$build_id"); echo $res; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 153:
           --get_all_builds_of_pr_id) get_all_builds $2; shift ;;
                                                     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --get_all_builds_of_pr_id) get_all_builds "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 161:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 4:
   zcp_TOKEN="eyJ0eXAiOiAiVENWMiJ9.bW1DcHJpRWNCSktnREhLaHd5Y1lndmpycnJ3.NmEwM2E3YTEtMTVmYy00NGU0LWI1OTAtMzU3MzljODE0Njdk"
   ^-------^ SC2034 (warning): zcp_TOKEN appears unused. Verify use (or export if used externally).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 7:
   zcp_TEAMCITY_SERVER="http://43.129.232.36:8111"
   ^-----------------^ SC2034 (warning): zcp_TEAMCITY_SERVER appears unused. Verify use (or export if used externally).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 40:
       state=$(show_build_state $build_id)
                                ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(show_build_state "$build_id")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 41:
       if [[ $state == "running" ]];then
             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${state} == "running" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 43:
           cmd="/app/rest/builds/id:$build_id"
                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd="/app/rest/builds/id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 44:
           cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
               ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd=${cmd}" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 45:
           url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                        ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                  ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                 ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                          ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                           ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 46:
           res=$(eval $eval)
                      ^---^ SC2154 (warning): eval is referenced but not assigned (for output from commands, use "$(eval ...)" ).
                      ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=$(eval "$eval")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 47:
           check=$(echo $res |grep status="UNKNOWN")
                        ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                        ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check=$(echo "$res" |grep status="UNKNOWN")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 48:
           if [[ -z $check ]];then
                    ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ -z ${check} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 57:
       state=$(show_build_state $build_id)
                                ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(show_build_state "$build_id")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 58:
       if [[ $state == "queued" ]];then
             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${state} == "queued" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 59:
           cmd="app/rest/buildQueue/id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd="app/rest/buildQueue/id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 60:
           cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
               ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd=${cmd}" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 61:
           url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                        ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                  ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                 ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                          ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                           ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 63:
           res=$(eval $eval)
                      ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=$(eval "$eval")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 64:
           check=$(echo $res |grep status="UNKNOWN")
                        ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                        ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check=$(echo "$res" |grep status="UNKNOWN")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 65:
           if [[ -z $check ]];then
                    ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ -z ${check} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 73:
       cmd="app/rest/builds?locator=id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 74:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 76:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 79:
       check=$(echo $res|grep "<builds count=\"1\"")
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       check=$(echo "$res"|grep "<builds count=\"1\"")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 80:
       if [[ -z $check ]]; then
                ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ -z ${check} ]]; then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 84:
       state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                   ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(echo "$res" |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g')
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 86:
       echo $state
            ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "$state"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 91:
       cmd="app/rest/builds?locator=id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 92:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 94:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 96:
       check1=$(echo $res|grep "<builds count=\"1\"")
                     ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                     ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       check1=$(echo "$res"|grep "<builds count=\"1\"")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 97:
       if [[ -z $check1 ]]; then
                ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ -z ${check1} ]]; then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 105:
       state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                   ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(echo "$res" |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g')
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 107:
       echo $state
            ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "$state"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 112:
       cmd="app/rest/builds?locator=branch:$branch"
                                           ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=branch:${branch}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 113:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 114:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 119:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                           ^-^ SC2089 (warning): Quotes/backslashes will be treated literally. Use an array.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 121:
       res=eval $url
       ^-----------^ SC2209 (warning): Use var=$(command) to assign output (or quote to assign string).
                ^--^ SC2090 (warning): Quotes/backslashes in this variable will not be respected.
                ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=eval ${url}
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 126:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $JSON_HEADER $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                   ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${JSON_HEADER} ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 128:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 12:
       while [ 1 -eq 1 ]
             ^---------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                 ^-^ SC2050 (warning): This expression is constant. Did you forget the $ on a variable?
   
   Did you mean: 
       while [[ 1 -eq 1 ]]
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 15:
   	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
                ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                              ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                            ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                    ^-------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^---^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files?per_page="$per_page"\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 17:
           if [ ${res_len} -ne 0 ];then
              ^------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           if [[ "${res_len}" -ne 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 18:
   	    let page+=1
               ^---------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 20:
   	    files=(${res[@]} ${files[*]})
                      ^-------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
                                ^---------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 30:
   out=($(get_all_change_files 11154))
        ^---------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check.sh line 3:
   <<'COMMENT'
   ^---------^ SC2188 (warning): This redirection doesn't have a command. Move to its command (or use 'true' as no-op).
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 26:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 30:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 33:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 34:
           if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 35:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 46:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 60:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 65:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 68:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 69:
           if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "be" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 70:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 74:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 88:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 93:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 96:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 97:
           if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "fe" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 98:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 102:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 113:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 115:
           --is_modify_only_invoved_be) check_all_change_files_is_under_be $2; shift ;;
                                                                           ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --is_modify_only_invoved_be) check_all_change_files_is_under_be "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 116:
           --is_modify_only_invoved_fe) check_all_change_files_is_under_fe $2; shift ;;
                                                                           ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --is_modify_only_invoved_fe) check_all_change_files_is_under_fe "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 117:
   	--is_modify_only_doc) check_all_change_files_is_under_doc $2; shift ;;
                                                                     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	--is_modify_only_doc) check_all_change_files_is_under_doc "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 124:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   For more information:
     https://www.shellcheck.net/wiki/SC2068 -- Double quote array expansions to ...
     https://www.shellcheck.net/wiki/SC2071 -- > is for string comparisons. Use ...
     https://www.shellcheck.net/wiki/SC1078 -- Did you forget to close this doub...
   ----------
   
   You can address the above issues in one of three ways:
   1. Manually correct the issue in the offending shell script;
   2. Disable specific issues by adding the comment:
     # shellcheck disable=NNNN
   above the line that contains the issue, where NNNN is the error code;
   3. Add '-e NNNN' to the SHELLCHECK_OPTS setting in your .yml action file.
   
   
   
   ```
   </details>
   
   <details>
   <summary>shfmt errors</summary>
   
   ```
   
   'shfmt ' returned error 1 finding the following formatting issues:
   
   ----------
   --- teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh
   @@ -8,23 +8,22 @@
    echo "===================================="
    echo "START TO DETECT RESIDUAL PROCESSES!"
    
   -check=$(lsof -i:$port|awk '{print $2}'|wc -l)
   -if [ "check$check" != "check0" ];then
   -    if [ "check"${case_level} == "check" ];then
   -        check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep deleted||wc -l)
   +check=$(lsof -i:$port | awk '{print $2}' | wc -l)
   +if [ "check$check" != "check0" ]; then
   +    if [ "check"${case_level} == "check" ]; then
   +        check_res=$(pwdx $(lsof -i:$port | grep -v PID | awk '{print $2}') | grep $env_name | grep deleted || wc -l)
        else
   -        check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep $case_level|grep deleted||wc -l)
   +        check_res=$(pwdx $(lsof -i:$port | grep -v PID | awk '{print $2}') | grep $env_name | grep $case_level | grep deleted || wc -l)
        fi
   -    if [ "check$check_res" != "check0" ];then
   -        be_pid=(`lsof -i:$port|grep -v PID|awk '{print $2}'`)
   +    if [ "check$check_res" != "check0" ]; then
   +        be_pid=($(lsof -i:$port | grep -v PID | awk '{print $2}'))
            echo "Detected residual processes: ${be_pid}"
            echo "kill residual processes: kill -9 ${be_pid}"
            kill -9 $be_pid
        fi
    else
   -        echo "No residual processes"
   +    echo "No residual processes"
    fi
    
   -
    echo "FINISH DETECT RESIDUAL PROCESSES!"
    echo "==================================="
   --- teamcity/doris/benchmark/clickbench/common/check_change_file.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/check_change_file.sh
   @@ -7,7 +7,7 @@
    GITHUB_TOKEN=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
    
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
    
   @@ -16,23 +16,21 @@
        $0 --is_modify_only_invoved_fe pr_id          if pr changed code only invoved fe doc, fs_brocker, return 0; else return 2
        $0 --is_modify_only_invoved_doc pr_id         if pr changed code only invoved doc, fs_brocker, return 0; else return 2
      "
   -  exit 1
   +    exit 1
    }
    
   -
   -function get_all_change_files(){
   +function get_all_change_files() {
        pr_id=$1
        files=()
    
        page=1
        per_page=100
   -    while [ 1 -eq 1 ]
   -    do
   +    while [ 1 -eq 1 ]; do
            #echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   -        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   +        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page | jq -r '.[]|select(.status = "removed")| .filename'))
            res_len=${#res[@]}
            #echo "================"$res_len
   -        if [ ${res_len} -ne 0 ];then
   +        if [ ${res_len} -ne 0 ]; then
                let page+=1
                #files="${res[@]}""$files"
                files=(${res[@]} ${files[*]})
   @@ -44,8 +42,7 @@
        echo "${files[@]}"
    }
    
   -
   -function check_removed_change_file(){
   +function check_removed_change_file() {
        pr_id=$1
        module=$2
        owner='apache'
   @@ -55,26 +52,25 @@
        file_nums=${#res[@]}
        is_code_change_flag=false
        module_file=0
   -    for file in ${res[@]}
   -    do
   -	#echo "$file"
   -	file_dir=$(echo $file|cut -d '/' -f 1)
   -        file_type=$(echo $file|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
   -	#if [[  "check$file_dir" == "check${module}" &&  ($file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js') ]];then
   -	if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]];then
   -	    echo "code has changed, ${file} is deleted"
   -	    is_code_change_flag=true
   -	fi
   -	if [[ "check$file_dir" == "check${module}" ]];then
   +    for file in ${res[@]}; do
   +        #echo "$file"
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        file_type=$(echo $file | rev | cut -d / -f 1 | cut -d '.' -f 1 | rev)
   +        #if [[  "check$file_dir" == "check${module}" &&  ($file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js') ]];then
   +        if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]]; then
   +            echo "code has changed, ${file} is deleted"
   +            is_code_change_flag=true
   +        fi
   +        if [[ "check$file_dir" == "check${module}" ]]; then
                let module_file+=1
   -	fi
   +        fi
        done
    
   -    if [[ "${is_code_change_flag}" == "false" ]];then
   -	echo "NO CODE FILE DELETED, PASSED!"
   +    if [[ "${is_code_change_flag}" == "false" ]]; then
   +        echo "NO CODE FILE DELETED, PASSED!"
            return 0
        else
   -	echo "CODE FILE BE DELETED"
   +        echo "CODE FILE BE DELETED"
            return 2
        fi
    
   @@ -95,20 +91,18 @@
    
        doc_num=0
        doc_sql_manual_num=0
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on docs/fs_brokers or not
   -	echo "$file"
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -	if [[ $file_dir == "docs" ]];then
   +        echo "$file"
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "docs" ]]; then
                let doc_num+=1
   -	fi
   -        if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]];then
   +        fi
   +        if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]]; then
                let doc_sql_manual_num+=1
                continue
            fi
    
   -
            #check change file is md/txt/doc file
            #file_type=$(echo $file|cut -d '.' -f 2)
            #if [[ $file_type == "md" || $file_type == "txt" || $file_type == "doc" ]];then
   @@ -120,7 +114,7 @@
        echo "doc_num: $doc_num"
        echo "file_nums: $file_nums"
        echo "doc_sql_manual_num: $doc_sql_manual_num"
   -    if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]];then
   +    if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]]; then
            echo "JUST MODIFY DOCUMENT, NO COED CHSNGED, PASSED!"
            return 0
        else
   @@ -143,17 +137,16 @@
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED BE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            echo "$file"
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
   -	fi
   +        fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY BE CODE, NO NEED RUN FE UT, PASSED!"
            return 0
        else
   @@ -176,17 +169,16 @@
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED FE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            echo "$file"
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY FE CODE, NO NEED RUN BE UT, PASSED!"
            return 0
        else
   @@ -197,42 +189,49 @@
    
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in
   +    if [ $# ] >0; then
   +        case "$1" in
            --is_modify_only_invoved_be)
   -	    check_removed_change_file $2 "be"
   -	    check_1=$?
   -	    check_all_change_files_is_under_be $2
   -	    check_2=$?
   -	    echo ${check_1}
   -	    echo ${check_2}
   -	    res=`expr $check_1 \* $check_2`
   -	    exit $res
   -	    shift ;;
   +            check_removed_change_file $2 "be"
   +            check_1=$?
   +            check_all_change_files_is_under_be $2
   +            check_2=$?
   +            echo ${check_1}
   +            echo ${check_2}
   +            res=$(expr $check_1 \* $check_2)
   +            exit $res
   +            shift
   +            ;;
            --is_modify_only_invoved_fe)
   -	    check_removed_change_file $2 "fe"
   -	    check_1=$?
   -	    check_all_change_files_is_under_fe $2
   -	    check_2=$?
   -            res=`expr $check_1 \* $check_2`
   -	    echo ${check_1}
   -	    echo ${check_2}
   -	    exit $res
   -	    shift ;;
   -	--is_modify_only_invoved_doc)
   -	    check_removed_change_file $2 "docs"
   -	    check_1=$?
   -	    check_all_change_files_is_under_doc $2
   -	    check_2=$?
   -            res=`expr $check_1 + $check_2`
   -	    echo ${check_1}
   +            check_removed_change_file $2 "fe"
   +            check_1=$?
   +            check_all_change_files_is_under_fe $2
   +            check_2=$?
   +            res=$(expr $check_1 \* $check_2)
   +            echo ${check_1}
                echo ${check_2}
   -	    exit $res
   -	    shift ;;
   -        *) echo "ERROR"; usage; exit 1 ;;
   -    esac
   +            exit $res
   +            shift
   +            ;;
   +        --is_modify_only_invoved_doc)
   +            check_removed_change_file $2 "docs"
   +            check_1=$?
   +            check_all_change_files_is_under_doc $2
   +            check_2=$?
   +            res=$(expr $check_1 + $check_2)
   +            echo ${check_1}
   +            echo ${check_2}
   +            exit $res
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            usage
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/common/clean_disk.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/clean_disk.sh
   @@ -3,7 +3,7 @@
    df -h
    existsTime=720
    #delete files created 20 hours ago
   -echo `date "+%Y-%m-%d %H:%M:%S"` "start to clear oudate file!"
   +echo $(date "+%Y-%m-%d %H:%M:%S") "start to clear oudate file!"
    cd /home/work/teamcity/TeamCity/piplineWork/Compile/
    find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
    cd -
   teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh:43:1: reached EOF without closing quote "
   --- teamcity/doris/benchmark/clickbench/common/teamcity_api.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/teamcity_api.sh
   @@ -139,23 +139,55 @@
    }
    COMMENT
    
   -
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in 
   -        --cancel_running_build) build_id=$2; cancel_running_build $build_id; shift ;;
   -        --cancel_pending_build) build_id=$2; cancel_pending_build $build_id; shift ;;
   -        --show_build_state) build_id=$2; res=$(show_build_state $build_id); echo $res; shift ;;
   -        --show_build_status) build_id=$2; res=$(show_build_status $build_id); echo $res; shift ;;
   -        --show_latest_builds) get_latest_builds; shift ;;
   -        --show_queued_builds) get_queued_builds; shift ;;
   -        --get_all_builds_of_pr_id) get_all_builds $2; shift ;;
   -	--help) usage; shift ;;
   -        *) echo "ERROR"; exit 1 ;;
   -    esac
   +    if [ $# ] >0; then
   +        case "$1" in
   +        --cancel_running_build)
   +            build_id=$2
   +            cancel_running_build $build_id
   +            shift
   +            ;;
   +        --cancel_pending_build)
   +            build_id=$2
   +            cancel_pending_build $build_id
   +            shift
   +            ;;
   +        --show_build_state)
   +            build_id=$2
   +            res=$(show_build_state $build_id)
   +            echo $res
   +            shift
   +            ;;
   +        --show_build_status)
   +            build_id=$2
   +            res=$(show_build_status $build_id)
   +            echo $res
   +            shift
   +            ;;
   +        --show_latest_builds)
   +            get_latest_builds
   +            shift
   +            ;;
   +        --show_queued_builds)
   +            get_queued_builds
   +            shift
   +            ;;
   +        --get_all_builds_of_pr_id)
   +            get_all_builds $2
   +            shift
   +            ;;
   +        --help)
   +            usage
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/common/teamcity_common.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/teamcity_common.sh
   @@ -11,7 +11,7 @@
    JSON_HEADER="--header \"Accept: application/json\""
    
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
         --cancel_running_build build_id    cancel a specific running build
   @@ -32,21 +32,21 @@
        $0 --show_queued_builds             show all queued builds
        $0 --get_all_builds_of_pr_id 9151   get all 9151 builds
      "
   -  exit 1
   +    exit 1
    }
    
    cancel_running_build() {
        build_id=$1
        state=$(show_build_state $build_id)
   -    if [[ $state == "running" ]];then
   +    if [[ $state == "running" ]]; then
            #curl --header "Authorization: Bearer eyJ0eXAiOiAiVENWMiJ9.bW1DcHJpRWNCSktnREhLaHd5Y1lndmpycnJ3.NmEwM2E3YTEtMTVmYy00NGU0LWI1OTAtMzU3MzljODE0Njdk" http://43.129.232.36:8111/app/rest/builds/id:333 -X POST -H 'Content-Type: application/json' -d '{ "buildCancelRequest": {       "comment": "Already running builds will be stopped.",      "readdIntoQueue": "false"    }  }'
            cmd="/app/rest/builds/id:$build_id"
            cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
            url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
            res=$(eval $eval)
   -        check=$(echo $res |grep status="UNKNOWN")
   -        if [[ -z $check ]];then
   -           echo "cancel fail!"
   +        check=$(echo $res | grep status="UNKNOWN")
   +        if [[ -z $check ]]; then
   +            echo "cancel fail!"
            fi
        fi
    
   @@ -55,15 +55,15 @@
    cancel_pending_build() {
        build_id=$1
        state=$(show_build_state $build_id)
   -    if [[ $state == "queued" ]];then
   +    if [[ $state == "queued" ]]; then
            cmd="app/rest/buildQueue/id:$build_id"
            cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
            url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
            #echo $url
            res=$(eval $eval)
   -        check=$(echo $res |grep status="UNKNOWN")
   -        if [[ -z $check ]];then
   -           echo "cancel fail!"
   +        check=$(echo $res | grep status="UNKNOWN")
   +        if [[ -z $check ]]; then
   +            echo "cancel fail!"
            fi
        fi
    }
   @@ -73,15 +73,15 @@
        cmd="app/rest/builds?locator=id:$build_id"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   -    
   +    res=$(eval $url)
   +
        #check build exist or not
   -    check=$(echo $res|grep "<builds count=\"1\"")
   +    check=$(echo $res | grep "<builds count=\"1\"")
        if [[ -z $check ]]; then
            return
        fi
        #get state
   -    state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
   +    state=$(echo $res | awk -F ' ' '{print $9" "$10" "$11}' | awk -F "state=" '{print $2}' | cut -d ' ' -f 1 | sed 's/\"//g')
        #only 2 state: queued and finished
        echo $state
    }
   @@ -91,9 +91,9 @@
        cmd="app/rest/builds?locator=id:$build_id"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   +    res=$(eval $url)
        #check build exist or not
   -    check1=$(echo $res|grep "<builds count=\"1\"")
   +    check1=$(echo $res | grep "<builds count=\"1\"")
        if [[ -z $check1 ]]; then
            return
        fi
   @@ -102,8 +102,8 @@
        #if [[ -z $check ]]; then
        #    return
        #fi
   -    state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
   -    #only 2 state: 
   +    state=$(echo $res | awk -F ' ' '{print $9" "$10" "$11}' | awk -F "status=" '{print $2}' | cut -d ' ' -f 1 | sed 's/\"//g')
   +    #only 2 state:
        echo $state
    }
    
   @@ -111,7 +111,7 @@
        branch=$1
        cmd="app/rest/builds?locator=branch:$branch"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
   -    res=`eval $url`
   +    res=$(eval $url)
    }
    
    get_latest_builds() {
   @@ -125,14 +125,12 @@
        cmd="app/rest/buildQueue"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $JSON_HEADER $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   +    res=$(eval $url)
        #a=$(echo $res|grep -oP 'build id=.*'|head -1)
   -    
   -    
   +
        #a=$res
        #while [[ "check"$a != "check" ]]
        #do
        #    a=$(echo $a|awk -F 'build id="' '{print $2}')
        #done
    }
   -
   --- teamcity/doris/benchmark/clickbench/common/test.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/test.sh
   @@ -3,33 +3,29 @@
    repo=doris
    GITHUB_TOKEN=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
    
   -function get_all_change_files(){
   +function get_all_change_files() {
        pr_id=$1
        files=()
    
        page=1
        per_page=100
   -    while [ 1 -eq 1 ]
   -    do
   -	#echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   -	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   +    while [ 1 -eq 1 ]; do
   +        #echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   +        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page | jq -r '.[]|select(.status = "removed")| .filename'))
            res_len=${#res[@]}
   -        if [ ${res_len} -ne 0 ];then
   -	    let page+=1
   +        if [ ${res_len} -ne 0 ]; then
   +            let page+=1
                #files="${res[@]}""$files"
   -	    files=(${res[@]} ${files[*]})
   +            files=(${res[@]} ${files[*]})
            else
                break
            fi
   -	echo 
   +        echo
        done
        echo "${files[@]}"
    }
    
   -
    out=($(get_all_change_files 11154))
    
   -
   -
    echo "=================="
    echo "${out[@]}"
   --- teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh
   @@ -3,9 +3,8 @@
    #res=(`git diff --name-only HEAD~ HEAD`)
    #file_nums=${#res[@]}
    
   -
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
    
   @@ -14,24 +13,22 @@
        $0 --is_modify_only_invoved_fe pr_id          if pr changed code only invoved fe doc, fs_brocker, return 0; else return 2
        $0 --is_modify_only_invoved_doc pr_id         if pr changed code only invoved doc, fs_brocker, return 0; else return 2
      "
   -  exit 1
   +    exit 1
    }
    
   -
    function check_all_change_files_is_under_doc() {
    
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on docs/fs_brokers or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
   @@ -43,7 +40,7 @@
            #fi
        done
    
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY DOCUMENT, NO COED CHSNGED, PASSED!"
            exit 0
        else
   @@ -57,21 +54,20 @@
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED BE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
   -	fi
   +        fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY BE CODE, NO NEED RUN FE UT, PASSED!"
            exit 0
        else
   @@ -85,21 +81,20 @@
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED FE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY FE CODE, NO NEED RUN BE UT, PASSED!"
            exit 0
        else
   @@ -110,15 +105,28 @@
    
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in
   -        --is_modify_only_invoved_be) check_all_change_files_is_under_be $2; shift ;;
   -        --is_modify_only_invoved_fe) check_all_change_files_is_under_fe $2; shift ;;
   -	--is_modify_only_doc) check_all_change_files_is_under_doc $2; shift ;;
   -        *) echo "ERROR"; usage; exit 1 ;;
   -    esac
   +    if [ $# ] >0; then
   +        case "$1" in
   +        --is_modify_only_invoved_be)
   +            check_all_change_files_is_under_be $2
   +            shift
   +            ;;
   +        --is_modify_only_invoved_fe)
   +            check_all_change_files_is_under_fe $2
   +            shift
   +            ;;
   +        --is_modify_only_doc)
   +            check_all_change_files_is_under_doc $2
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            usage
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/prepare.sh.orig
   +++ teamcity/doris/benchmark/clickbench/prepare.sh
   @@ -22,4 +22,3 @@
    fi
    qa_home="${pipeline_home}/selectdb-qa"
    cd "${qa_home}" && git stash && git checkout main && git pull && cd -
   -
   ----------
   
   You can reformat the above files to meet shfmt's requirements by typing:
   
     shfmt  -w filename
   
   
   ```
   </details>
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] github-actions[bot] commented on pull request #13259: test benchmark pipeline

Posted by GitBox <gi...@apache.org>.
github-actions[bot] commented on PR #13259:
URL: https://github.com/apache/doris/pull/13259#issuecomment-1301610857

   #### `sh-checker report`
   
   To get the full details, please check in the [job]("https://github.com/apache/doris/actions/runs/3382866186") output.
   
   <details>
   <summary>shellcheck errors</summary>
   
   ```
   
   'shellcheck ' returned error 1 finding the following syntactical issues:
   
   ----------
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 11:
   check=$(lsof -i:$port|awk '{print $2}'|wc -l)
                   ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   check=$(lsof -i:"$port"|awk '{print $2}'|wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 12:
   if [ "check$check" != "check0" ];then
      ^---------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
              ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   if [[ "check${check}" != "check0" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 13:
       if [ "check"${case_level} == "check" ];then
          ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                   ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       if [[ "check""${case_level}" == "check" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 14:
           check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep deleted||wc -l)
                            ^-- SC2046 (warning): Quote this to prevent word splitting.
                            ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                     ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                     ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                              ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                              ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check_res=$(pwdx $(lsof -i:"$port"|grep -v PID|awk '{print $2}')|grep $env_name|grep deleted||wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 16:
           check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep $case_level|grep deleted||wc -l)
                            ^-- SC2046 (warning): Quote this to prevent word splitting.
                            ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                     ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                     ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                              ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                              ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                             ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                             ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check_res=$(pwdx $(lsof -i:"$port"|grep -v PID|awk '{print $2}')|grep $env_name|grep $case_level|grep deleted||wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 18:
       if [ "check$check_res" != "check0" ];then
          ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                  ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ "check${check_res}" != "check0" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 19:
           be_pid=(`lsof -i:$port|grep -v PID|awk '{print $2}'`)
                   ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                   ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                            ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                            ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           be_pid=($(lsof -i:"$port"|grep -v PID|awk '{print $2}'))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 20:
           echo "Detected residual processes: ${be_pid}"
                                              ^-------^ SC2128 (warning): Expanding an array without an index only gives the first element.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 21:
           echo "kill residual processes: kill -9 ${be_pid}"
                                                  ^-------^ SC2128 (warning): Expanding an array without an index only gives the first element.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 22:
           kill -9 $be_pid
                   ^-----^ SC2128 (warning): Expanding an array without an index only gives the first element.
                   ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           kill -9 "$be_pid"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 29:
       while [ 1 -eq 1 ]
             ^---------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                 ^-^ SC2050 (warning): This expression is constant. Did you forget the $ on a variable?
   
   Did you mean: 
       while [[ 1 -eq 1 ]]
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 32:
           res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
                ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                              ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                            ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                    ^-------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^---^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files?per_page="$per_page"\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 35:
           if [ ${res_len} -ne 0 ];then
              ^------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           if [[ "${res_len}" -ne 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 36:
               let page+=1
               ^---------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 38:
               files=(${res[@]} ${files[*]})
                      ^-------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
                                ^---------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 54:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 58:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 61:
   	file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 62:
           file_type=$(echo $file|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
                            ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                            ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_type=$(echo "$file"|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 64:
   	if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]];then
                 ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                     ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                           ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ ${file_type} == "cpp" || ${file_type} == "c" || ${file_type} == "java" || ${file_type} == "py" || ${file_type} == "h" || ${file_type} == 'js' ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 68:
   	if [[ "check$file_dir" == "check${module}" ]];then
                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ "check${file_dir}" == "check${module}" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 69:
               let module_file+=1
               ^----------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 89:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 98:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 101:
   	echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 102:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 103:
   	if [[ $file_dir == "docs" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ ${file_dir} == "docs" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 104:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 106:
           if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]];then
                  ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                              ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ "${file}" =~ "docs/zh-CN/docs/sql-manual/" || "${file}" =~ "docs/en/docs/sql-manual/" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 107:
               let doc_sql_manual_num+=1
               ^-----------------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 120:
       echo "doc_num: $doc_num"
                      ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "doc_num: ${doc_num}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 121:
       echo "file_nums: $file_nums"
                        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "file_nums: ${file_nums}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 122:
       echo "doc_sql_manual_num: $doc_sql_manual_num"
                                 ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "doc_sql_manual_num: ${doc_sql_manual_num}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 123:
       if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} && ${doc_sql_manual_num} -eq 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 138:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 146:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 148:
           echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 150:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 151:
           if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "be" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 152:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 156:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 171:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 179:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 181:
           echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 183:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 184:
           if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "fe" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 185:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 189:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 200:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 203:
   	    check_removed_change_file $2 "be"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "be"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 205:
   	    check_all_change_files_is_under_be $2
                                                  ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_be "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 207:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 208:
   	    echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 209:
   	    res=`expr $check_1 \* $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    res=$(expr "$check_1" \* $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 210:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 213:
   	    check_removed_change_file $2 "fe"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "fe"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 215:
   	    check_all_change_files_is_under_fe $2
                                                  ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_fe "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 217:
               res=`expr $check_1 \* $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
               res=$(expr "$check_1" \* $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 218:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 219:
   	    echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 220:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 223:
   	    check_removed_change_file $2 "docs"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "docs"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 225:
   	    check_all_change_files_is_under_doc $2
                                                   ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_doc "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 227:
               res=`expr $check_1 + $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                    ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                    ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
               res=$(expr "$check_1" + $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 228:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 229:
               echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
               echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 230:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 238:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 6:
   echo `date "+%Y-%m-%d %H:%M:%S"` "start to clear oudate file!"
        ^-------------------------^ SC2046 (warning): Quote this to prevent word splitting.
        ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
   
   Did you mean: 
   echo $(date "+%Y-%m-%d %H:%M:%S") "start to clear oudate file!"
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 7:
   cd /home/work/teamcity/TeamCity/piplineWork/Compile/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/Compile/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 8:
   find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                         ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 9:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   ^--^ SC2103 (info): Use a ( subshell ) to avoid having to cd back.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 10:
   cd /home/work/teamcity/TeamCity/piplineWork/feUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/feUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 11:
   find /home/work/teamcity/TeamCity/piplineWork/feUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/feUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 12:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 13:
   cd /home/work/teamcity/TeamCity/piplineWork/beUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/beUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 14:
   find /home/work/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 15:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 16:
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 17:
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                         ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 18:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 19:
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 20:
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_compile.sh line 3:
   id=$(echo $RANDOM)
      ^-------------^ SC2116 (style): Useless echo? Instead of 'cmd $(echo foo)', just use 'cmd foo'.
             ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
             ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   id=$(echo "$RANDOM")
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_compile.sh line 5:
   docker run -i --rm --name doris-compile-$id -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v $work_path:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
                                           ^-^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                           ^-^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                                    ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   docker run -i --rm --name doris-compile-"$id" -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v $work_path:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 40:
       docker_name="doris-compile-"$(echo $RANDOM)
                                  ^-- SC1078 (warning): Did you forget to close this double quoted string?
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 42:
       cmd="docker run -i --rm --name doris-compile-$id -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v %system.teamcity.build.workingDir%:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
           ^-- SC1079 (info): This is actually an end quote, but due to next char it looks suspect.
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 43:
   "
   ^-- SC1073 (error): Couldn't parse this double quoted string. Fix to allow more checks.
   ^-- SC1009 (info): The mentioned syntax error was in this simple command.
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 45:
   
   ^-- SC1072 (error): Expected end of double quoted string. Fix any mentioned problems and try again.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 5:
   <<'COMMENT'
   ^---------^ SC2188 (warning): This redirection doesn't have a command. Move to its command (or use 'true' as no-op).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 145:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 147:
           --cancel_running_build) build_id=$2; cancel_running_build $build_id; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --cancel_running_build) build_id=$2; cancel_running_build "$build_id"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 148:
           --cancel_pending_build) build_id=$2; cancel_pending_build $build_id; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --cancel_pending_build) build_id=$2; cancel_pending_build "$build_id"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 149:
           --show_build_state) build_id=$2; res=$(show_build_state $build_id); echo $res; shift ;;
                                                                   ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                   ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --show_build_state) build_id=$2; res=$(show_build_state "$build_id"); echo $res; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 150:
           --show_build_status) build_id=$2; res=$(show_build_status $build_id); echo $res; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                      ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                      ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --show_build_status) build_id=$2; res=$(show_build_status "$build_id"); echo $res; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 153:
           --get_all_builds_of_pr_id) get_all_builds $2; shift ;;
                                                     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --get_all_builds_of_pr_id) get_all_builds "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 161:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 4:
   zcp_TOKEN="eyJ0eXAiOiAiVENWMiJ9.bW1DcHJpRWNCSktnREhLaHd5Y1lndmpycnJ3.NmEwM2E3YTEtMTVmYy00NGU0LWI1OTAtMzU3MzljODE0Njdk"
   ^-------^ SC2034 (warning): zcp_TOKEN appears unused. Verify use (or export if used externally).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 7:
   zcp_TEAMCITY_SERVER="http://43.129.232.36:8111"
   ^-----------------^ SC2034 (warning): zcp_TEAMCITY_SERVER appears unused. Verify use (or export if used externally).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 40:
       state=$(show_build_state $build_id)
                                ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(show_build_state "$build_id")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 41:
       if [[ $state == "running" ]];then
             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${state} == "running" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 43:
           cmd="/app/rest/builds/id:$build_id"
                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd="/app/rest/builds/id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 44:
           cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
               ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd=${cmd}" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 45:
           url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                        ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                  ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                 ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                          ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                           ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 46:
           res=$(eval $eval)
                      ^---^ SC2154 (warning): eval is referenced but not assigned (for output from commands, use "$(eval ...)" ).
                      ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=$(eval "$eval")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 47:
           check=$(echo $res |grep status="UNKNOWN")
                        ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                        ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check=$(echo "$res" |grep status="UNKNOWN")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 48:
           if [[ -z $check ]];then
                    ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ -z ${check} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 57:
       state=$(show_build_state $build_id)
                                ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(show_build_state "$build_id")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 58:
       if [[ $state == "queued" ]];then
             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${state} == "queued" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 59:
           cmd="app/rest/buildQueue/id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd="app/rest/buildQueue/id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 60:
           cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
               ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd=${cmd}" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 61:
           url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                        ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                  ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                 ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                          ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                           ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 63:
           res=$(eval $eval)
                      ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=$(eval "$eval")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 64:
           check=$(echo $res |grep status="UNKNOWN")
                        ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                        ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check=$(echo "$res" |grep status="UNKNOWN")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 65:
           if [[ -z $check ]];then
                    ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ -z ${check} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 73:
       cmd="app/rest/builds?locator=id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 74:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 76:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 79:
       check=$(echo $res|grep "<builds count=\"1\"")
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       check=$(echo "$res"|grep "<builds count=\"1\"")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 80:
       if [[ -z $check ]]; then
                ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ -z ${check} ]]; then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 84:
       state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                   ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(echo "$res" |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g')
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 86:
       echo $state
            ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "$state"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 91:
       cmd="app/rest/builds?locator=id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 92:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 94:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 96:
       check1=$(echo $res|grep "<builds count=\"1\"")
                     ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                     ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       check1=$(echo "$res"|grep "<builds count=\"1\"")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 97:
       if [[ -z $check1 ]]; then
                ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ -z ${check1} ]]; then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 105:
       state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                   ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(echo "$res" |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g')
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 107:
       echo $state
            ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "$state"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 112:
       cmd="app/rest/builds?locator=branch:$branch"
                                           ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=branch:${branch}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 113:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 114:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 119:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                           ^-^ SC2089 (warning): Quotes/backslashes will be treated literally. Use an array.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 121:
       res=eval $url
       ^-----------^ SC2209 (warning): Use var=$(command) to assign output (or quote to assign string).
                ^--^ SC2090 (warning): Quotes/backslashes in this variable will not be respected.
                ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=eval ${url}
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 126:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $JSON_HEADER $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                   ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${JSON_HEADER} ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 128:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 12:
       while [ 1 -eq 1 ]
             ^---------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                 ^-^ SC2050 (warning): This expression is constant. Did you forget the $ on a variable?
   
   Did you mean: 
       while [[ 1 -eq 1 ]]
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 15:
   	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
                ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                              ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                            ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                    ^-------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^---^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files?per_page="$per_page"\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 17:
           if [ ${res_len} -ne 0 ];then
              ^------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           if [[ "${res_len}" -ne 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 18:
   	    let page+=1
               ^---------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 20:
   	    files=(${res[@]} ${files[*]})
                      ^-------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
                                ^---------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 30:
   out=($(get_all_change_files 11154))
        ^---------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check.sh line 3:
   <<'COMMENT'
   ^---------^ SC2188 (warning): This redirection doesn't have a command. Move to its command (or use 'true' as no-op).
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 26:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 30:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 33:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 34:
           if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 35:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 46:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 60:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 65:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 68:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 69:
           if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "be" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 70:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 74:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 88:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 93:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 96:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 97:
           if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "fe" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 98:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 102:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 113:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 115:
           --is_modify_only_invoved_be) check_all_change_files_is_under_be $2; shift ;;
                                                                           ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --is_modify_only_invoved_be) check_all_change_files_is_under_be "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 116:
           --is_modify_only_invoved_fe) check_all_change_files_is_under_fe $2; shift ;;
                                                                           ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --is_modify_only_invoved_fe) check_all_change_files_is_under_fe "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 117:
   	--is_modify_only_doc) check_all_change_files_is_under_doc $2; shift ;;
                                                                     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	--is_modify_only_doc) check_all_change_files_is_under_doc "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 124:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   For more information:
     https://www.shellcheck.net/wiki/SC2068 -- Double quote array expansions to ...
     https://www.shellcheck.net/wiki/SC2071 -- > is for string comparisons. Use ...
     https://www.shellcheck.net/wiki/SC1078 -- Did you forget to close this doub...
   ----------
   
   You can address the above issues in one of three ways:
   1. Manually correct the issue in the offending shell script;
   2. Disable specific issues by adding the comment:
     # shellcheck disable=NNNN
   above the line that contains the issue, where NNNN is the error code;
   3. Add '-e NNNN' to the SHELLCHECK_OPTS setting in your .yml action file.
   
   
   
   ```
   </details>
   
   <details>
   <summary>shfmt errors</summary>
   
   ```
   
   'shfmt ' returned error 1 finding the following formatting issues:
   
   ----------
   --- teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh
   @@ -8,23 +8,22 @@
    echo "===================================="
    echo "START TO DETECT RESIDUAL PROCESSES!"
    
   -check=$(lsof -i:$port|awk '{print $2}'|wc -l)
   -if [ "check$check" != "check0" ];then
   -    if [ "check"${case_level} == "check" ];then
   -        check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep deleted||wc -l)
   +check=$(lsof -i:$port | awk '{print $2}' | wc -l)
   +if [ "check$check" != "check0" ]; then
   +    if [ "check"${case_level} == "check" ]; then
   +        check_res=$(pwdx $(lsof -i:$port | grep -v PID | awk '{print $2}') | grep $env_name | grep deleted || wc -l)
        else
   -        check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep $case_level|grep deleted||wc -l)
   +        check_res=$(pwdx $(lsof -i:$port | grep -v PID | awk '{print $2}') | grep $env_name | grep $case_level | grep deleted || wc -l)
        fi
   -    if [ "check$check_res" != "check0" ];then
   -        be_pid=(`lsof -i:$port|grep -v PID|awk '{print $2}'`)
   +    if [ "check$check_res" != "check0" ]; then
   +        be_pid=($(lsof -i:$port | grep -v PID | awk '{print $2}'))
            echo "Detected residual processes: ${be_pid}"
            echo "kill residual processes: kill -9 ${be_pid}"
            kill -9 $be_pid
        fi
    else
   -        echo "No residual processes"
   +    echo "No residual processes"
    fi
    
   -
    echo "FINISH DETECT RESIDUAL PROCESSES!"
    echo "==================================="
   --- teamcity/doris/benchmark/clickbench/common/check_change_file.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/check_change_file.sh
   @@ -7,7 +7,7 @@
    GITHUB_TOKEN=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
    
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
    
   @@ -16,23 +16,21 @@
        $0 --is_modify_only_invoved_fe pr_id          if pr changed code only invoved fe doc, fs_brocker, return 0; else return 2
        $0 --is_modify_only_invoved_doc pr_id         if pr changed code only invoved doc, fs_brocker, return 0; else return 2
      "
   -  exit 1
   +    exit 1
    }
    
   -
   -function get_all_change_files(){
   +function get_all_change_files() {
        pr_id=$1
        files=()
    
        page=1
        per_page=100
   -    while [ 1 -eq 1 ]
   -    do
   +    while [ 1 -eq 1 ]; do
            #echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   -        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   +        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page | jq -r '.[]|select(.status = "removed")| .filename'))
            res_len=${#res[@]}
            #echo "================"$res_len
   -        if [ ${res_len} -ne 0 ];then
   +        if [ ${res_len} -ne 0 ]; then
                let page+=1
                #files="${res[@]}""$files"
                files=(${res[@]} ${files[*]})
   @@ -44,8 +42,7 @@
        echo "${files[@]}"
    }
    
   -
   -function check_removed_change_file(){
   +function check_removed_change_file() {
        pr_id=$1
        module=$2
        owner='apache'
   @@ -55,26 +52,25 @@
        file_nums=${#res[@]}
        is_code_change_flag=false
        module_file=0
   -    for file in ${res[@]}
   -    do
   -	#echo "$file"
   -	file_dir=$(echo $file|cut -d '/' -f 1)
   -        file_type=$(echo $file|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
   -	#if [[  "check$file_dir" == "check${module}" &&  ($file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js') ]];then
   -	if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]];then
   -	    echo "code has changed, ${file} is deleted"
   -	    is_code_change_flag=true
   -	fi
   -	if [[ "check$file_dir" == "check${module}" ]];then
   +    for file in ${res[@]}; do
   +        #echo "$file"
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        file_type=$(echo $file | rev | cut -d / -f 1 | cut -d '.' -f 1 | rev)
   +        #if [[  "check$file_dir" == "check${module}" &&  ($file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js') ]];then
   +        if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]]; then
   +            echo "code has changed, ${file} is deleted"
   +            is_code_change_flag=true
   +        fi
   +        if [[ "check$file_dir" == "check${module}" ]]; then
                let module_file+=1
   -	fi
   +        fi
        done
    
   -    if [[ "${is_code_change_flag}" == "false" ]];then
   -	echo "NO CODE FILE DELETED, PASSED!"
   +    if [[ "${is_code_change_flag}" == "false" ]]; then
   +        echo "NO CODE FILE DELETED, PASSED!"
            return 0
        else
   -	echo "CODE FILE BE DELETED"
   +        echo "CODE FILE BE DELETED"
            return 2
        fi
    
   @@ -95,20 +91,18 @@
    
        doc_num=0
        doc_sql_manual_num=0
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on docs/fs_brokers or not
   -	echo "$file"
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -	if [[ $file_dir == "docs" ]];then
   +        echo "$file"
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "docs" ]]; then
                let doc_num+=1
   -	fi
   -        if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]];then
   +        fi
   +        if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]]; then
                let doc_sql_manual_num+=1
                continue
            fi
    
   -
            #check change file is md/txt/doc file
            #file_type=$(echo $file|cut -d '.' -f 2)
            #if [[ $file_type == "md" || $file_type == "txt" || $file_type == "doc" ]];then
   @@ -120,7 +114,7 @@
        echo "doc_num: $doc_num"
        echo "file_nums: $file_nums"
        echo "doc_sql_manual_num: $doc_sql_manual_num"
   -    if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]];then
   +    if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]]; then
            echo "JUST MODIFY DOCUMENT, NO COED CHSNGED, PASSED!"
            return 0
        else
   @@ -143,17 +137,16 @@
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED BE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            echo "$file"
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
   -	fi
   +        fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY BE CODE, NO NEED RUN FE UT, PASSED!"
            return 0
        else
   @@ -176,17 +169,16 @@
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED FE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            echo "$file"
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY FE CODE, NO NEED RUN BE UT, PASSED!"
            return 0
        else
   @@ -197,42 +189,49 @@
    
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in
   +    if [ $# ] >0; then
   +        case "$1" in
            --is_modify_only_invoved_be)
   -	    check_removed_change_file $2 "be"
   -	    check_1=$?
   -	    check_all_change_files_is_under_be $2
   -	    check_2=$?
   -	    echo ${check_1}
   -	    echo ${check_2}
   -	    res=`expr $check_1 \* $check_2`
   -	    exit $res
   -	    shift ;;
   +            check_removed_change_file $2 "be"
   +            check_1=$?
   +            check_all_change_files_is_under_be $2
   +            check_2=$?
   +            echo ${check_1}
   +            echo ${check_2}
   +            res=$(expr $check_1 \* $check_2)
   +            exit $res
   +            shift
   +            ;;
            --is_modify_only_invoved_fe)
   -	    check_removed_change_file $2 "fe"
   -	    check_1=$?
   -	    check_all_change_files_is_under_fe $2
   -	    check_2=$?
   -            res=`expr $check_1 \* $check_2`
   -	    echo ${check_1}
   -	    echo ${check_2}
   -	    exit $res
   -	    shift ;;
   -	--is_modify_only_invoved_doc)
   -	    check_removed_change_file $2 "docs"
   -	    check_1=$?
   -	    check_all_change_files_is_under_doc $2
   -	    check_2=$?
   -            res=`expr $check_1 + $check_2`
   -	    echo ${check_1}
   +            check_removed_change_file $2 "fe"
   +            check_1=$?
   +            check_all_change_files_is_under_fe $2
   +            check_2=$?
   +            res=$(expr $check_1 \* $check_2)
   +            echo ${check_1}
                echo ${check_2}
   -	    exit $res
   -	    shift ;;
   -        *) echo "ERROR"; usage; exit 1 ;;
   -    esac
   +            exit $res
   +            shift
   +            ;;
   +        --is_modify_only_invoved_doc)
   +            check_removed_change_file $2 "docs"
   +            check_1=$?
   +            check_all_change_files_is_under_doc $2
   +            check_2=$?
   +            res=$(expr $check_1 + $check_2)
   +            echo ${check_1}
   +            echo ${check_2}
   +            exit $res
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            usage
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/common/clean_disk.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/clean_disk.sh
   @@ -3,7 +3,7 @@
    df -h
    existsTime=720
    #delete files created 20 hours ago
   -echo `date "+%Y-%m-%d %H:%M:%S"` "start to clear oudate file!"
   +echo $(date "+%Y-%m-%d %H:%M:%S") "start to clear oudate file!"
    cd /home/work/teamcity/TeamCity/piplineWork/Compile/
    find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
    cd -
   teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh:43:1: reached EOF without closing quote "
   --- teamcity/doris/benchmark/clickbench/common/teamcity_api.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/teamcity_api.sh
   @@ -139,23 +139,55 @@
    }
    COMMENT
    
   -
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in 
   -        --cancel_running_build) build_id=$2; cancel_running_build $build_id; shift ;;
   -        --cancel_pending_build) build_id=$2; cancel_pending_build $build_id; shift ;;
   -        --show_build_state) build_id=$2; res=$(show_build_state $build_id); echo $res; shift ;;
   -        --show_build_status) build_id=$2; res=$(show_build_status $build_id); echo $res; shift ;;
   -        --show_latest_builds) get_latest_builds; shift ;;
   -        --show_queued_builds) get_queued_builds; shift ;;
   -        --get_all_builds_of_pr_id) get_all_builds $2; shift ;;
   -	--help) usage; shift ;;
   -        *) echo "ERROR"; exit 1 ;;
   -    esac
   +    if [ $# ] >0; then
   +        case "$1" in
   +        --cancel_running_build)
   +            build_id=$2
   +            cancel_running_build $build_id
   +            shift
   +            ;;
   +        --cancel_pending_build)
   +            build_id=$2
   +            cancel_pending_build $build_id
   +            shift
   +            ;;
   +        --show_build_state)
   +            build_id=$2
   +            res=$(show_build_state $build_id)
   +            echo $res
   +            shift
   +            ;;
   +        --show_build_status)
   +            build_id=$2
   +            res=$(show_build_status $build_id)
   +            echo $res
   +            shift
   +            ;;
   +        --show_latest_builds)
   +            get_latest_builds
   +            shift
   +            ;;
   +        --show_queued_builds)
   +            get_queued_builds
   +            shift
   +            ;;
   +        --get_all_builds_of_pr_id)
   +            get_all_builds $2
   +            shift
   +            ;;
   +        --help)
   +            usage
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/common/teamcity_common.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/teamcity_common.sh
   @@ -11,7 +11,7 @@
    JSON_HEADER="--header \"Accept: application/json\""
    
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
         --cancel_running_build build_id    cancel a specific running build
   @@ -32,21 +32,21 @@
        $0 --show_queued_builds             show all queued builds
        $0 --get_all_builds_of_pr_id 9151   get all 9151 builds
      "
   -  exit 1
   +    exit 1
    }
    
    cancel_running_build() {
        build_id=$1
        state=$(show_build_state $build_id)
   -    if [[ $state == "running" ]];then
   +    if [[ $state == "running" ]]; then
            #curl --header "Authorization: Bearer eyJ0eXAiOiAiVENWMiJ9.bW1DcHJpRWNCSktnREhLaHd5Y1lndmpycnJ3.NmEwM2E3YTEtMTVmYy00NGU0LWI1OTAtMzU3MzljODE0Njdk" http://43.129.232.36:8111/app/rest/builds/id:333 -X POST -H 'Content-Type: application/json' -d '{ "buildCancelRequest": {       "comment": "Already running builds will be stopped.",      "readdIntoQueue": "false"    }  }'
            cmd="/app/rest/builds/id:$build_id"
            cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
            url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
            res=$(eval $eval)
   -        check=$(echo $res |grep status="UNKNOWN")
   -        if [[ -z $check ]];then
   -           echo "cancel fail!"
   +        check=$(echo $res | grep status="UNKNOWN")
   +        if [[ -z $check ]]; then
   +            echo "cancel fail!"
            fi
        fi
    
   @@ -55,15 +55,15 @@
    cancel_pending_build() {
        build_id=$1
        state=$(show_build_state $build_id)
   -    if [[ $state == "queued" ]];then
   +    if [[ $state == "queued" ]]; then
            cmd="app/rest/buildQueue/id:$build_id"
            cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
            url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
            #echo $url
            res=$(eval $eval)
   -        check=$(echo $res |grep status="UNKNOWN")
   -        if [[ -z $check ]];then
   -           echo "cancel fail!"
   +        check=$(echo $res | grep status="UNKNOWN")
   +        if [[ -z $check ]]; then
   +            echo "cancel fail!"
            fi
        fi
    }
   @@ -73,15 +73,15 @@
        cmd="app/rest/builds?locator=id:$build_id"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   -    
   +    res=$(eval $url)
   +
        #check build exist or not
   -    check=$(echo $res|grep "<builds count=\"1\"")
   +    check=$(echo $res | grep "<builds count=\"1\"")
        if [[ -z $check ]]; then
            return
        fi
        #get state
   -    state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
   +    state=$(echo $res | awk -F ' ' '{print $9" "$10" "$11}' | awk -F "state=" '{print $2}' | cut -d ' ' -f 1 | sed 's/\"//g')
        #only 2 state: queued and finished
        echo $state
    }
   @@ -91,9 +91,9 @@
        cmd="app/rest/builds?locator=id:$build_id"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   +    res=$(eval $url)
        #check build exist or not
   -    check1=$(echo $res|grep "<builds count=\"1\"")
   +    check1=$(echo $res | grep "<builds count=\"1\"")
        if [[ -z $check1 ]]; then
            return
        fi
   @@ -102,8 +102,8 @@
        #if [[ -z $check ]]; then
        #    return
        #fi
   -    state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
   -    #only 2 state: 
   +    state=$(echo $res | awk -F ' ' '{print $9" "$10" "$11}' | awk -F "status=" '{print $2}' | cut -d ' ' -f 1 | sed 's/\"//g')
   +    #only 2 state:
        echo $state
    }
    
   @@ -111,7 +111,7 @@
        branch=$1
        cmd="app/rest/builds?locator=branch:$branch"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
   -    res=`eval $url`
   +    res=$(eval $url)
    }
    
    get_latest_builds() {
   @@ -125,14 +125,12 @@
        cmd="app/rest/buildQueue"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $JSON_HEADER $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   +    res=$(eval $url)
        #a=$(echo $res|grep -oP 'build id=.*'|head -1)
   -    
   -    
   +
        #a=$res
        #while [[ "check"$a != "check" ]]
        #do
        #    a=$(echo $a|awk -F 'build id="' '{print $2}')
        #done
    }
   -
   --- teamcity/doris/benchmark/clickbench/common/test.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/test.sh
   @@ -3,33 +3,29 @@
    repo=doris
    GITHUB_TOKEN=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
    
   -function get_all_change_files(){
   +function get_all_change_files() {
        pr_id=$1
        files=()
    
        page=1
        per_page=100
   -    while [ 1 -eq 1 ]
   -    do
   -	#echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   -	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   +    while [ 1 -eq 1 ]; do
   +        #echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   +        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page | jq -r '.[]|select(.status = "removed")| .filename'))
            res_len=${#res[@]}
   -        if [ ${res_len} -ne 0 ];then
   -	    let page+=1
   +        if [ ${res_len} -ne 0 ]; then
   +            let page+=1
                #files="${res[@]}""$files"
   -	    files=(${res[@]} ${files[*]})
   +            files=(${res[@]} ${files[*]})
            else
                break
            fi
   -	echo 
   +        echo
        done
        echo "${files[@]}"
    }
    
   -
    out=($(get_all_change_files 11154))
    
   -
   -
    echo "=================="
    echo "${out[@]}"
   --- teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh
   @@ -3,9 +3,8 @@
    #res=(`git diff --name-only HEAD~ HEAD`)
    #file_nums=${#res[@]}
    
   -
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
    
   @@ -14,24 +13,22 @@
        $0 --is_modify_only_invoved_fe pr_id          if pr changed code only invoved fe doc, fs_brocker, return 0; else return 2
        $0 --is_modify_only_invoved_doc pr_id         if pr changed code only invoved doc, fs_brocker, return 0; else return 2
      "
   -  exit 1
   +    exit 1
    }
    
   -
    function check_all_change_files_is_under_doc() {
    
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on docs/fs_brokers or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
   @@ -43,7 +40,7 @@
            #fi
        done
    
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY DOCUMENT, NO COED CHSNGED, PASSED!"
            exit 0
        else
   @@ -57,21 +54,20 @@
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED BE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
   -	fi
   +        fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY BE CODE, NO NEED RUN FE UT, PASSED!"
            exit 0
        else
   @@ -85,21 +81,20 @@
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED FE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY FE CODE, NO NEED RUN BE UT, PASSED!"
            exit 0
        else
   @@ -110,15 +105,28 @@
    
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in
   -        --is_modify_only_invoved_be) check_all_change_files_is_under_be $2; shift ;;
   -        --is_modify_only_invoved_fe) check_all_change_files_is_under_fe $2; shift ;;
   -	--is_modify_only_doc) check_all_change_files_is_under_doc $2; shift ;;
   -        *) echo "ERROR"; usage; exit 1 ;;
   -    esac
   +    if [ $# ] >0; then
   +        case "$1" in
   +        --is_modify_only_invoved_be)
   +            check_all_change_files_is_under_be $2
   +            shift
   +            ;;
   +        --is_modify_only_invoved_fe)
   +            check_all_change_files_is_under_fe $2
   +            shift
   +            ;;
   +        --is_modify_only_doc)
   +            check_all_change_files_is_under_doc $2
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            usage
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/prepare.sh.orig
   +++ teamcity/doris/benchmark/clickbench/prepare.sh
   @@ -22,4 +22,3 @@
    fi
    qa_home="${pipeline_home}/selectdb-qa"
    cd "${qa_home}" && git stash && git checkout main && git pull && cd -
   -
   ----------
   
   You can reformat the above files to meet shfmt's requirements by typing:
   
     shfmt  -w filename
   
   
   ```
   </details>
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] hello-stephen closed pull request #13259: test benchmark pipeline

Posted by GitBox <gi...@apache.org>.
hello-stephen closed pull request #13259: test benchmark pipeline
URL: https://github.com/apache/doris/pull/13259


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] github-actions[bot] commented on pull request #13259: test benchmark pipeline

Posted by GitBox <gi...@apache.org>.
github-actions[bot] commented on PR #13259:
URL: https://github.com/apache/doris/pull/13259#issuecomment-1274145671

   #### `sh-checker report`
   
   To get the full details, please check in the [job]("https://github.com/apache/doris/actions/runs/3224584553") output.
   
   <details>
   <summary>shellcheck errors</summary>
   
   ```
   
   'shellcheck ' returned error 1 finding the following syntactical issues:
   
   ----------
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 11:
   check=$(lsof -i:$port|awk '{print $2}'|wc -l)
                   ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   check=$(lsof -i:"$port"|awk '{print $2}'|wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 12:
   if [ "check$check" != "check0" ];then
      ^---------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
              ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   if [[ "check${check}" != "check0" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 13:
       if [ "check"${case_level} == "check" ];then
          ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                   ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       if [[ "check""${case_level}" == "check" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 14:
           check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep deleted||wc -l)
                            ^-- SC2046 (warning): Quote this to prevent word splitting.
                            ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                     ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                     ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                              ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                              ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check_res=$(pwdx $(lsof -i:"$port"|grep -v PID|awk '{print $2}')|grep $env_name|grep deleted||wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 16:
           check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep $case_level|grep deleted||wc -l)
                            ^-- SC2046 (warning): Quote this to prevent word splitting.
                            ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                     ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                     ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                              ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                              ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                             ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                             ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check_res=$(pwdx $(lsof -i:"$port"|grep -v PID|awk '{print $2}')|grep $env_name|grep $case_level|grep deleted||wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 18:
       if [ "check$check_res" != "check0" ];then
          ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                  ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ "check${check_res}" != "check0" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 19:
           be_pid=(`lsof -i:$port|grep -v PID|awk '{print $2}'`)
                   ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                   ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                            ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                            ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           be_pid=($(lsof -i:"$port"|grep -v PID|awk '{print $2}'))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 20:
           echo "Detected residual processes: ${be_pid}"
                                              ^-------^ SC2128 (warning): Expanding an array without an index only gives the first element.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 21:
           echo "kill residual processes: kill -9 ${be_pid}"
                                                  ^-------^ SC2128 (warning): Expanding an array without an index only gives the first element.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 22:
           kill -9 $be_pid
                   ^-----^ SC2128 (warning): Expanding an array without an index only gives the first element.
                   ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           kill -9 "$be_pid"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 29:
       while [ 1 -eq 1 ]
             ^---------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                 ^-^ SC2050 (warning): This expression is constant. Did you forget the $ on a variable?
   
   Did you mean: 
       while [[ 1 -eq 1 ]]
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 32:
           res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
                ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                              ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                            ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                    ^-------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^---^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files?per_page="$per_page"\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 35:
           if [ ${res_len} -ne 0 ];then
              ^------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           if [[ "${res_len}" -ne 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 36:
               let page+=1
               ^---------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 38:
               files=(${res[@]} ${files[*]})
                      ^-------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
                                ^---------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 54:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 58:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 61:
   	file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 62:
           file_type=$(echo $file|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
                            ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                            ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_type=$(echo "$file"|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 64:
   	if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]];then
                 ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                     ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                           ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ ${file_type} == "cpp" || ${file_type} == "c" || ${file_type} == "java" || ${file_type} == "py" || ${file_type} == "h" || ${file_type} == 'js' ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 68:
   	if [[ "check$file_dir" == "check${module}" ]];then
                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ "check${file_dir}" == "check${module}" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 69:
               let module_file+=1
               ^----------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 89:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 98:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 101:
   	echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 102:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 103:
   	if [[ $file_dir == "docs" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ ${file_dir} == "docs" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 104:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 106:
           if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]];then
                  ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                              ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ "${file}" =~ "docs/zh-CN/docs/sql-manual/" || "${file}" =~ "docs/en/docs/sql-manual/" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 107:
               let doc_sql_manual_num+=1
               ^-----------------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 120:
       echo "doc_num: $doc_num"
                      ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "doc_num: ${doc_num}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 121:
       echo "file_nums: $file_nums"
                        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "file_nums: ${file_nums}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 122:
       echo "doc_sql_manual_num: $doc_sql_manual_num"
                                 ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "doc_sql_manual_num: ${doc_sql_manual_num}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 123:
       if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} && ${doc_sql_manual_num} -eq 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 138:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 146:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 148:
           echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 150:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 151:
           if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "be" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 152:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 156:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 171:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 179:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 181:
           echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 183:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 184:
           if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "fe" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 185:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 189:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 200:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 203:
   	    check_removed_change_file $2 "be"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "be"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 205:
   	    check_all_change_files_is_under_be $2
                                                  ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_be "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 207:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 208:
   	    echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 209:
   	    res=`expr $check_1 \* $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    res=$(expr "$check_1" \* $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 210:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 213:
   	    check_removed_change_file $2 "fe"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "fe"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 215:
   	    check_all_change_files_is_under_fe $2
                                                  ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_fe "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 217:
               res=`expr $check_1 \* $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
               res=$(expr "$check_1" \* $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 218:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 219:
   	    echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 220:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 223:
   	    check_removed_change_file $2 "docs"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "docs"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 225:
   	    check_all_change_files_is_under_doc $2
                                                   ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_doc "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 227:
               res=`expr $check_1 + $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                    ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                    ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
               res=$(expr "$check_1" + $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 228:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 229:
               echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
               echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 230:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 238:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 6:
   echo `date "+%Y-%m-%d %H:%M:%S"` "start to clear oudate file!"
        ^-------------------------^ SC2046 (warning): Quote this to prevent word splitting.
        ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
   
   Did you mean: 
   echo $(date "+%Y-%m-%d %H:%M:%S") "start to clear oudate file!"
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 7:
   cd /home/work/teamcity/TeamCity/piplineWork/Compile/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/Compile/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 8:
   find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                         ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 9:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   ^--^ SC2103 (info): Use a ( subshell ) to avoid having to cd back.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 10:
   cd /home/work/teamcity/TeamCity/piplineWork/feUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/feUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 11:
   find /home/work/teamcity/TeamCity/piplineWork/feUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/feUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 12:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 13:
   cd /home/work/teamcity/TeamCity/piplineWork/beUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/beUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 14:
   find /home/work/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 15:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 16:
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 17:
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                         ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 18:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 19:
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 20:
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_compile.sh line 3:
   id=$(echo $RANDOM)
      ^-------------^ SC2116 (style): Useless echo? Instead of 'cmd $(echo foo)', just use 'cmd foo'.
             ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
             ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   id=$(echo "$RANDOM")
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_compile.sh line 5:
   docker run -i --rm --name doris-compile-$id -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v $work_path:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
                                           ^-^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                           ^-^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                                    ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   docker run -i --rm --name doris-compile-"$id" -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v $work_path:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 40:
       docker_name="doris-compile-"$(echo $RANDOM)
                                  ^-- SC1078 (warning): Did you forget to close this double quoted string?
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 42:
       cmd="docker run -i --rm --name doris-compile-$id -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v %system.teamcity.build.workingDir%:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
           ^-- SC1079 (info): This is actually an end quote, but due to next char it looks suspect.
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 43:
   "
   ^-- SC1073 (error): Couldn't parse this double quoted string. Fix to allow more checks.
   ^-- SC1009 (info): The mentioned syntax error was in this simple command.
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 45:
   
   ^-- SC1072 (error): Expected end of double quoted string. Fix any mentioned problems and try again.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 5:
   <<'COMMENT'
   ^---------^ SC2188 (warning): This redirection doesn't have a command. Move to its command (or use 'true' as no-op).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 145:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 147:
           --cancel_running_build) build_id=$2; cancel_running_build $build_id; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --cancel_running_build) build_id=$2; cancel_running_build "$build_id"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 148:
           --cancel_pending_build) build_id=$2; cancel_pending_build $build_id; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --cancel_pending_build) build_id=$2; cancel_pending_build "$build_id"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 149:
           --show_build_state) build_id=$2; res=$(show_build_state $build_id); echo $res; shift ;;
                                                                   ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                   ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --show_build_state) build_id=$2; res=$(show_build_state "$build_id"); echo $res; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 150:
           --show_build_status) build_id=$2; res=$(show_build_status $build_id); echo $res; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                      ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                      ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --show_build_status) build_id=$2; res=$(show_build_status "$build_id"); echo $res; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 153:
           --get_all_builds_of_pr_id) get_all_builds $2; shift ;;
                                                     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --get_all_builds_of_pr_id) get_all_builds "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 161:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 4:
   zcp_TOKEN="eyJ0eXAiOiAiVENWMiJ9.bW1DcHJpRWNCSktnREhLaHd5Y1lndmpycnJ3.NmEwM2E3YTEtMTVmYy00NGU0LWI1OTAtMzU3MzljODE0Njdk"
   ^-------^ SC2034 (warning): zcp_TOKEN appears unused. Verify use (or export if used externally).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 7:
   zcp_TEAMCITY_SERVER="http://43.129.232.36:8111"
   ^-----------------^ SC2034 (warning): zcp_TEAMCITY_SERVER appears unused. Verify use (or export if used externally).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 40:
       state=$(show_build_state $build_id)
                                ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(show_build_state "$build_id")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 41:
       if [[ $state == "running" ]];then
             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${state} == "running" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 43:
           cmd="/app/rest/builds/id:$build_id"
                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd="/app/rest/builds/id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 44:
           cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
               ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd=${cmd}" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 45:
           url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                        ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                  ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                 ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                          ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                           ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 46:
           res=$(eval $eval)
                      ^---^ SC2154 (warning): eval is referenced but not assigned (for output from commands, use "$(eval ...)" ).
                      ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=$(eval "$eval")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 47:
           check=$(echo $res |grep status="UNKNOWN")
                        ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                        ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check=$(echo "$res" |grep status="UNKNOWN")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 48:
           if [[ -z $check ]];then
                    ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ -z ${check} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 57:
       state=$(show_build_state $build_id)
                                ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(show_build_state "$build_id")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 58:
       if [[ $state == "queued" ]];then
             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${state} == "queued" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 59:
           cmd="app/rest/buildQueue/id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd="app/rest/buildQueue/id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 60:
           cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
               ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd=${cmd}" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 61:
           url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                        ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                  ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                 ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                          ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                           ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 63:
           res=$(eval $eval)
                      ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=$(eval "$eval")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 64:
           check=$(echo $res |grep status="UNKNOWN")
                        ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                        ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check=$(echo "$res" |grep status="UNKNOWN")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 65:
           if [[ -z $check ]];then
                    ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ -z ${check} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 73:
       cmd="app/rest/builds?locator=id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 74:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 76:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 79:
       check=$(echo $res|grep "<builds count=\"1\"")
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       check=$(echo "$res"|grep "<builds count=\"1\"")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 80:
       if [[ -z $check ]]; then
                ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ -z ${check} ]]; then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 84:
       state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                   ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(echo "$res" |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g')
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 86:
       echo $state
            ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "$state"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 91:
       cmd="app/rest/builds?locator=id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 92:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 94:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 96:
       check1=$(echo $res|grep "<builds count=\"1\"")
                     ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                     ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       check1=$(echo "$res"|grep "<builds count=\"1\"")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 97:
       if [[ -z $check1 ]]; then
                ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ -z ${check1} ]]; then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 105:
       state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                   ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(echo "$res" |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g')
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 107:
       echo $state
            ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "$state"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 112:
       cmd="app/rest/builds?locator=branch:$branch"
                                           ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=branch:${branch}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 113:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 114:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 119:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                           ^-^ SC2089 (warning): Quotes/backslashes will be treated literally. Use an array.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 121:
       res=eval $url
       ^-----------^ SC2209 (warning): Use var=$(command) to assign output (or quote to assign string).
                ^--^ SC2090 (warning): Quotes/backslashes in this variable will not be respected.
                ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=eval ${url}
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 126:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $JSON_HEADER $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                   ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${JSON_HEADER} ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 128:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 12:
       while [ 1 -eq 1 ]
             ^---------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                 ^-^ SC2050 (warning): This expression is constant. Did you forget the $ on a variable?
   
   Did you mean: 
       while [[ 1 -eq 1 ]]
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 15:
   	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
                ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                              ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                            ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                    ^-------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^---^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files?per_page="$per_page"\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 17:
           if [ ${res_len} -ne 0 ];then
              ^------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           if [[ "${res_len}" -ne 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 18:
   	    let page+=1
               ^---------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 20:
   	    files=(${res[@]} ${files[*]})
                      ^-------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
                                ^---------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 30:
   out=($(get_all_change_files 11154))
        ^---------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check.sh line 3:
   <<'COMMENT'
   ^---------^ SC2188 (warning): This redirection doesn't have a command. Move to its command (or use 'true' as no-op).
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 26:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 30:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 33:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 34:
           if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 35:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 46:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 60:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 65:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 68:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 69:
           if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "be" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 70:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 74:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 88:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 93:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 96:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 97:
           if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "fe" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 98:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 102:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 113:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 115:
           --is_modify_only_invoved_be) check_all_change_files_is_under_be $2; shift ;;
                                                                           ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --is_modify_only_invoved_be) check_all_change_files_is_under_be "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 116:
           --is_modify_only_invoved_fe) check_all_change_files_is_under_fe $2; shift ;;
                                                                           ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --is_modify_only_invoved_fe) check_all_change_files_is_under_fe "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 117:
   	--is_modify_only_doc) check_all_change_files_is_under_doc $2; shift ;;
                                                                     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	--is_modify_only_doc) check_all_change_files_is_under_doc "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 124:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   For more information:
     https://www.shellcheck.net/wiki/SC2068 -- Double quote array expansions to ...
     https://www.shellcheck.net/wiki/SC2071 -- > is for string comparisons. Use ...
     https://www.shellcheck.net/wiki/SC1078 -- Did you forget to close this doub...
   ----------
   
   You can address the above issues in one of three ways:
   1. Manually correct the issue in the offending shell script;
   2. Disable specific issues by adding the comment:
     # shellcheck disable=NNNN
   above the line that contains the issue, where NNNN is the error code;
   3. Add '-e NNNN' to the SHELLCHECK_OPTS setting in your .yml action file.
   
   
   
   ```
   </details>
   
   <details>
   <summary>shfmt errors</summary>
   
   ```
   
   'shfmt ' returned error 1 finding the following formatting issues:
   
   ----------
   --- teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh
   @@ -8,23 +8,22 @@
    echo "===================================="
    echo "START TO DETECT RESIDUAL PROCESSES!"
    
   -check=$(lsof -i:$port|awk '{print $2}'|wc -l)
   -if [ "check$check" != "check0" ];then
   -    if [ "check"${case_level} == "check" ];then
   -        check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep deleted||wc -l)
   +check=$(lsof -i:$port | awk '{print $2}' | wc -l)
   +if [ "check$check" != "check0" ]; then
   +    if [ "check"${case_level} == "check" ]; then
   +        check_res=$(pwdx $(lsof -i:$port | grep -v PID | awk '{print $2}') | grep $env_name | grep deleted || wc -l)
        else
   -        check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep $case_level|grep deleted||wc -l)
   +        check_res=$(pwdx $(lsof -i:$port | grep -v PID | awk '{print $2}') | grep $env_name | grep $case_level | grep deleted || wc -l)
        fi
   -    if [ "check$check_res" != "check0" ];then
   -        be_pid=(`lsof -i:$port|grep -v PID|awk '{print $2}'`)
   +    if [ "check$check_res" != "check0" ]; then
   +        be_pid=($(lsof -i:$port | grep -v PID | awk '{print $2}'))
            echo "Detected residual processes: ${be_pid}"
            echo "kill residual processes: kill -9 ${be_pid}"
            kill -9 $be_pid
        fi
    else
   -        echo "No residual processes"
   +    echo "No residual processes"
    fi
    
   -
    echo "FINISH DETECT RESIDUAL PROCESSES!"
    echo "==================================="
   --- teamcity/doris/benchmark/clickbench/common/check_change_file.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/check_change_file.sh
   @@ -7,7 +7,7 @@
    GITHUB_TOKEN=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
    
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
    
   @@ -16,23 +16,21 @@
        $0 --is_modify_only_invoved_fe pr_id          if pr changed code only invoved fe doc, fs_brocker, return 0; else return 2
        $0 --is_modify_only_invoved_doc pr_id         if pr changed code only invoved doc, fs_brocker, return 0; else return 2
      "
   -  exit 1
   +    exit 1
    }
    
   -
   -function get_all_change_files(){
   +function get_all_change_files() {
        pr_id=$1
        files=()
    
        page=1
        per_page=100
   -    while [ 1 -eq 1 ]
   -    do
   +    while [ 1 -eq 1 ]; do
            #echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   -        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   +        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page | jq -r '.[]|select(.status = "removed")| .filename'))
            res_len=${#res[@]}
            #echo "================"$res_len
   -        if [ ${res_len} -ne 0 ];then
   +        if [ ${res_len} -ne 0 ]; then
                let page+=1
                #files="${res[@]}""$files"
                files=(${res[@]} ${files[*]})
   @@ -44,8 +42,7 @@
        echo "${files[@]}"
    }
    
   -
   -function check_removed_change_file(){
   +function check_removed_change_file() {
        pr_id=$1
        module=$2
        owner='apache'
   @@ -55,26 +52,25 @@
        file_nums=${#res[@]}
        is_code_change_flag=false
        module_file=0
   -    for file in ${res[@]}
   -    do
   -	#echo "$file"
   -	file_dir=$(echo $file|cut -d '/' -f 1)
   -        file_type=$(echo $file|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
   -	#if [[  "check$file_dir" == "check${module}" &&  ($file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js') ]];then
   -	if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]];then
   -	    echo "code has changed, ${file} is deleted"
   -	    is_code_change_flag=true
   -	fi
   -	if [[ "check$file_dir" == "check${module}" ]];then
   +    for file in ${res[@]}; do
   +        #echo "$file"
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        file_type=$(echo $file | rev | cut -d / -f 1 | cut -d '.' -f 1 | rev)
   +        #if [[  "check$file_dir" == "check${module}" &&  ($file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js') ]];then
   +        if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]]; then
   +            echo "code has changed, ${file} is deleted"
   +            is_code_change_flag=true
   +        fi
   +        if [[ "check$file_dir" == "check${module}" ]]; then
                let module_file+=1
   -	fi
   +        fi
        done
    
   -    if [[ "${is_code_change_flag}" == "false" ]];then
   -	echo "NO CODE FILE DELETED, PASSED!"
   +    if [[ "${is_code_change_flag}" == "false" ]]; then
   +        echo "NO CODE FILE DELETED, PASSED!"
            return 0
        else
   -	echo "CODE FILE BE DELETED"
   +        echo "CODE FILE BE DELETED"
            return 2
        fi
    
   @@ -95,20 +91,18 @@
    
        doc_num=0
        doc_sql_manual_num=0
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on docs/fs_brokers or not
   -	echo "$file"
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -	if [[ $file_dir == "docs" ]];then
   +        echo "$file"
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "docs" ]]; then
                let doc_num+=1
   -	fi
   -        if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]];then
   +        fi
   +        if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]]; then
                let doc_sql_manual_num+=1
                continue
            fi
    
   -
            #check change file is md/txt/doc file
            #file_type=$(echo $file|cut -d '.' -f 2)
            #if [[ $file_type == "md" || $file_type == "txt" || $file_type == "doc" ]];then
   @@ -120,7 +114,7 @@
        echo "doc_num: $doc_num"
        echo "file_nums: $file_nums"
        echo "doc_sql_manual_num: $doc_sql_manual_num"
   -    if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]];then
   +    if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]]; then
            echo "JUST MODIFY DOCUMENT, NO COED CHSNGED, PASSED!"
            return 0
        else
   @@ -143,17 +137,16 @@
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED BE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            echo "$file"
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
   -	fi
   +        fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY BE CODE, NO NEED RUN FE UT, PASSED!"
            return 0
        else
   @@ -176,17 +169,16 @@
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED FE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            echo "$file"
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY FE CODE, NO NEED RUN BE UT, PASSED!"
            return 0
        else
   @@ -197,42 +189,49 @@
    
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in
   +    if [ $# ] >0; then
   +        case "$1" in
            --is_modify_only_invoved_be)
   -	    check_removed_change_file $2 "be"
   -	    check_1=$?
   -	    check_all_change_files_is_under_be $2
   -	    check_2=$?
   -	    echo ${check_1}
   -	    echo ${check_2}
   -	    res=`expr $check_1 \* $check_2`
   -	    exit $res
   -	    shift ;;
   +            check_removed_change_file $2 "be"
   +            check_1=$?
   +            check_all_change_files_is_under_be $2
   +            check_2=$?
   +            echo ${check_1}
   +            echo ${check_2}
   +            res=$(expr $check_1 \* $check_2)
   +            exit $res
   +            shift
   +            ;;
            --is_modify_only_invoved_fe)
   -	    check_removed_change_file $2 "fe"
   -	    check_1=$?
   -	    check_all_change_files_is_under_fe $2
   -	    check_2=$?
   -            res=`expr $check_1 \* $check_2`
   -	    echo ${check_1}
   -	    echo ${check_2}
   -	    exit $res
   -	    shift ;;
   -	--is_modify_only_invoved_doc)
   -	    check_removed_change_file $2 "docs"
   -	    check_1=$?
   -	    check_all_change_files_is_under_doc $2
   -	    check_2=$?
   -            res=`expr $check_1 + $check_2`
   -	    echo ${check_1}
   +            check_removed_change_file $2 "fe"
   +            check_1=$?
   +            check_all_change_files_is_under_fe $2
   +            check_2=$?
   +            res=$(expr $check_1 \* $check_2)
   +            echo ${check_1}
                echo ${check_2}
   -	    exit $res
   -	    shift ;;
   -        *) echo "ERROR"; usage; exit 1 ;;
   -    esac
   +            exit $res
   +            shift
   +            ;;
   +        --is_modify_only_invoved_doc)
   +            check_removed_change_file $2 "docs"
   +            check_1=$?
   +            check_all_change_files_is_under_doc $2
   +            check_2=$?
   +            res=$(expr $check_1 + $check_2)
   +            echo ${check_1}
   +            echo ${check_2}
   +            exit $res
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            usage
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/common/clean_disk.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/clean_disk.sh
   @@ -3,7 +3,7 @@
    df -h
    existsTime=720
    #delete files created 20 hours ago
   -echo `date "+%Y-%m-%d %H:%M:%S"` "start to clear oudate file!"
   +echo $(date "+%Y-%m-%d %H:%M:%S") "start to clear oudate file!"
    cd /home/work/teamcity/TeamCity/piplineWork/Compile/
    find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
    cd -
   teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh:43:1: reached EOF without closing quote "
   --- teamcity/doris/benchmark/clickbench/common/teamcity_api.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/teamcity_api.sh
   @@ -139,23 +139,55 @@
    }
    COMMENT
    
   -
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in 
   -        --cancel_running_build) build_id=$2; cancel_running_build $build_id; shift ;;
   -        --cancel_pending_build) build_id=$2; cancel_pending_build $build_id; shift ;;
   -        --show_build_state) build_id=$2; res=$(show_build_state $build_id); echo $res; shift ;;
   -        --show_build_status) build_id=$2; res=$(show_build_status $build_id); echo $res; shift ;;
   -        --show_latest_builds) get_latest_builds; shift ;;
   -        --show_queued_builds) get_queued_builds; shift ;;
   -        --get_all_builds_of_pr_id) get_all_builds $2; shift ;;
   -	--help) usage; shift ;;
   -        *) echo "ERROR"; exit 1 ;;
   -    esac
   +    if [ $# ] >0; then
   +        case "$1" in
   +        --cancel_running_build)
   +            build_id=$2
   +            cancel_running_build $build_id
   +            shift
   +            ;;
   +        --cancel_pending_build)
   +            build_id=$2
   +            cancel_pending_build $build_id
   +            shift
   +            ;;
   +        --show_build_state)
   +            build_id=$2
   +            res=$(show_build_state $build_id)
   +            echo $res
   +            shift
   +            ;;
   +        --show_build_status)
   +            build_id=$2
   +            res=$(show_build_status $build_id)
   +            echo $res
   +            shift
   +            ;;
   +        --show_latest_builds)
   +            get_latest_builds
   +            shift
   +            ;;
   +        --show_queued_builds)
   +            get_queued_builds
   +            shift
   +            ;;
   +        --get_all_builds_of_pr_id)
   +            get_all_builds $2
   +            shift
   +            ;;
   +        --help)
   +            usage
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/common/teamcity_common.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/teamcity_common.sh
   @@ -11,7 +11,7 @@
    JSON_HEADER="--header \"Accept: application/json\""
    
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
         --cancel_running_build build_id    cancel a specific running build
   @@ -32,21 +32,21 @@
        $0 --show_queued_builds             show all queued builds
        $0 --get_all_builds_of_pr_id 9151   get all 9151 builds
      "
   -  exit 1
   +    exit 1
    }
    
    cancel_running_build() {
        build_id=$1
        state=$(show_build_state $build_id)
   -    if [[ $state == "running" ]];then
   +    if [[ $state == "running" ]]; then
            #curl --header "Authorization: Bearer eyJ0eXAiOiAiVENWMiJ9.bW1DcHJpRWNCSktnREhLaHd5Y1lndmpycnJ3.NmEwM2E3YTEtMTVmYy00NGU0LWI1OTAtMzU3MzljODE0Njdk" http://43.129.232.36:8111/app/rest/builds/id:333 -X POST -H 'Content-Type: application/json' -d '{ "buildCancelRequest": {       "comment": "Already running builds will be stopped.",      "readdIntoQueue": "false"    }  }'
            cmd="/app/rest/builds/id:$build_id"
            cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
            url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
            res=$(eval $eval)
   -        check=$(echo $res |grep status="UNKNOWN")
   -        if [[ -z $check ]];then
   -           echo "cancel fail!"
   +        check=$(echo $res | grep status="UNKNOWN")
   +        if [[ -z $check ]]; then
   +            echo "cancel fail!"
            fi
        fi
    
   @@ -55,15 +55,15 @@
    cancel_pending_build() {
        build_id=$1
        state=$(show_build_state $build_id)
   -    if [[ $state == "queued" ]];then
   +    if [[ $state == "queued" ]]; then
            cmd="app/rest/buildQueue/id:$build_id"
            cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
            url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
            #echo $url
            res=$(eval $eval)
   -        check=$(echo $res |grep status="UNKNOWN")
   -        if [[ -z $check ]];then
   -           echo "cancel fail!"
   +        check=$(echo $res | grep status="UNKNOWN")
   +        if [[ -z $check ]]; then
   +            echo "cancel fail!"
            fi
        fi
    }
   @@ -73,15 +73,15 @@
        cmd="app/rest/builds?locator=id:$build_id"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   -    
   +    res=$(eval $url)
   +
        #check build exist or not
   -    check=$(echo $res|grep "<builds count=\"1\"")
   +    check=$(echo $res | grep "<builds count=\"1\"")
        if [[ -z $check ]]; then
            return
        fi
        #get state
   -    state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
   +    state=$(echo $res | awk -F ' ' '{print $9" "$10" "$11}' | awk -F "state=" '{print $2}' | cut -d ' ' -f 1 | sed 's/\"//g')
        #only 2 state: queued and finished
        echo $state
    }
   @@ -91,9 +91,9 @@
        cmd="app/rest/builds?locator=id:$build_id"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   +    res=$(eval $url)
        #check build exist or not
   -    check1=$(echo $res|grep "<builds count=\"1\"")
   +    check1=$(echo $res | grep "<builds count=\"1\"")
        if [[ -z $check1 ]]; then
            return
        fi
   @@ -102,8 +102,8 @@
        #if [[ -z $check ]]; then
        #    return
        #fi
   -    state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
   -    #only 2 state: 
   +    state=$(echo $res | awk -F ' ' '{print $9" "$10" "$11}' | awk -F "status=" '{print $2}' | cut -d ' ' -f 1 | sed 's/\"//g')
   +    #only 2 state:
        echo $state
    }
    
   @@ -111,7 +111,7 @@
        branch=$1
        cmd="app/rest/builds?locator=branch:$branch"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
   -    res=`eval $url`
   +    res=$(eval $url)
    }
    
    get_latest_builds() {
   @@ -125,14 +125,12 @@
        cmd="app/rest/buildQueue"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $JSON_HEADER $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   +    res=$(eval $url)
        #a=$(echo $res|grep -oP 'build id=.*'|head -1)
   -    
   -    
   +
        #a=$res
        #while [[ "check"$a != "check" ]]
        #do
        #    a=$(echo $a|awk -F 'build id="' '{print $2}')
        #done
    }
   -
   --- teamcity/doris/benchmark/clickbench/common/test.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/test.sh
   @@ -3,33 +3,29 @@
    repo=doris
    GITHUB_TOKEN=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
    
   -function get_all_change_files(){
   +function get_all_change_files() {
        pr_id=$1
        files=()
    
        page=1
        per_page=100
   -    while [ 1 -eq 1 ]
   -    do
   -	#echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   -	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   +    while [ 1 -eq 1 ]; do
   +        #echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   +        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page | jq -r '.[]|select(.status = "removed")| .filename'))
            res_len=${#res[@]}
   -        if [ ${res_len} -ne 0 ];then
   -	    let page+=1
   +        if [ ${res_len} -ne 0 ]; then
   +            let page+=1
                #files="${res[@]}""$files"
   -	    files=(${res[@]} ${files[*]})
   +            files=(${res[@]} ${files[*]})
            else
                break
            fi
   -	echo 
   +        echo
        done
        echo "${files[@]}"
    }
    
   -
    out=($(get_all_change_files 11154))
    
   -
   -
    echo "=================="
    echo "${out[@]}"
   --- teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh
   @@ -3,9 +3,8 @@
    #res=(`git diff --name-only HEAD~ HEAD`)
    #file_nums=${#res[@]}
    
   -
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
    
   @@ -14,24 +13,22 @@
        $0 --is_modify_only_invoved_fe pr_id          if pr changed code only invoved fe doc, fs_brocker, return 0; else return 2
        $0 --is_modify_only_invoved_doc pr_id         if pr changed code only invoved doc, fs_brocker, return 0; else return 2
      "
   -  exit 1
   +    exit 1
    }
    
   -
    function check_all_change_files_is_under_doc() {
    
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on docs/fs_brokers or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
   @@ -43,7 +40,7 @@
            #fi
        done
    
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY DOCUMENT, NO COED CHSNGED, PASSED!"
            exit 0
        else
   @@ -57,21 +54,20 @@
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED BE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
   -	fi
   +        fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY BE CODE, NO NEED RUN FE UT, PASSED!"
            exit 0
        else
   @@ -85,21 +81,20 @@
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED FE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY FE CODE, NO NEED RUN BE UT, PASSED!"
            exit 0
        else
   @@ -110,15 +105,28 @@
    
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in
   -        --is_modify_only_invoved_be) check_all_change_files_is_under_be $2; shift ;;
   -        --is_modify_only_invoved_fe) check_all_change_files_is_under_fe $2; shift ;;
   -	--is_modify_only_doc) check_all_change_files_is_under_doc $2; shift ;;
   -        *) echo "ERROR"; usage; exit 1 ;;
   -    esac
   +    if [ $# ] >0; then
   +        case "$1" in
   +        --is_modify_only_invoved_be)
   +            check_all_change_files_is_under_be $2
   +            shift
   +            ;;
   +        --is_modify_only_invoved_fe)
   +            check_all_change_files_is_under_fe $2
   +            shift
   +            ;;
   +        --is_modify_only_doc)
   +            check_all_change_files_is_under_doc $2
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            usage
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   ----------
   
   You can reformat the above files to meet shfmt's requirements by typing:
   
     shfmt  -w filename
   
   
   ```
   </details>
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] hello-stephen commented on pull request #13259: test benchmark pipeline

Posted by GitBox <gi...@apache.org>.
hello-stephen commented on PR #13259:
URL: https://github.com/apache/doris/pull/13259#issuecomment-1278516646

   https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/clickbench_pr_29174.html


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] github-actions[bot] commented on pull request #13259: test benchmark pipeline

Posted by GitBox <gi...@apache.org>.
github-actions[bot] commented on PR #13259:
URL: https://github.com/apache/doris/pull/13259#issuecomment-1328457649

   #### `sh-checker report`
   
   To get the full details, please check in the [job]("https://github.com/apache/doris/actions/runs/3561246536") output.
   
   <details>
   <summary>shellcheck errors</summary>
   
   ```
   
   'shellcheck ' returned error 1 finding the following syntactical issues:
   
   ----------
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 11:
   check=$(lsof -i:$port|awk '{print $2}'|wc -l)
                   ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   check=$(lsof -i:"$port"|awk '{print $2}'|wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 12:
   if [ "check$check" != "check0" ];then
      ^---------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
              ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   if [[ "check${check}" != "check0" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 13:
       if [ "check"${case_level} == "check" ];then
          ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                   ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       if [[ "check""${case_level}" == "check" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 14:
           check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep deleted||wc -l)
                            ^-- SC2046 (warning): Quote this to prevent word splitting.
                            ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                     ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                     ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                              ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                              ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check_res=$(pwdx $(lsof -i:"$port"|grep -v PID|awk '{print $2}')|grep $env_name|grep deleted||wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 16:
           check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep $case_level|grep deleted||wc -l)
                            ^-- SC2046 (warning): Quote this to prevent word splitting.
                            ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                     ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                     ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                              ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                              ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                             ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                             ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check_res=$(pwdx $(lsof -i:"$port"|grep -v PID|awk '{print $2}')|grep $env_name|grep $case_level|grep deleted||wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 18:
       if [ "check$check_res" != "check0" ];then
          ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                  ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ "check${check_res}" != "check0" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 19:
           be_pid=(`lsof -i:$port|grep -v PID|awk '{print $2}'`)
                   ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                   ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                            ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                            ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           be_pid=($(lsof -i:"$port"|grep -v PID|awk '{print $2}'))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 20:
           echo "Detected residual processes: ${be_pid}"
                                              ^-------^ SC2128 (warning): Expanding an array without an index only gives the first element.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 21:
           echo "kill residual processes: kill -9 ${be_pid}"
                                                  ^-------^ SC2128 (warning): Expanding an array without an index only gives the first element.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 22:
           kill -9 $be_pid
                   ^-----^ SC2128 (warning): Expanding an array without an index only gives the first element.
                   ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           kill -9 "$be_pid"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 29:
       while [ 1 -eq 1 ]
             ^---------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                 ^-^ SC2050 (warning): This expression is constant. Did you forget the $ on a variable?
   
   Did you mean: 
       while [[ 1 -eq 1 ]]
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 32:
           res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
                ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                              ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                            ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                    ^-------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^---^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files?per_page="$per_page"\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 35:
           if [ ${res_len} -ne 0 ];then
              ^------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           if [[ "${res_len}" -ne 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 36:
               let page+=1
               ^---------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 38:
               files=(${res[@]} ${files[*]})
                      ^-------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
                                ^---------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 54:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 58:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 61:
   	file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 62:
           file_type=$(echo $file|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
                            ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                            ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_type=$(echo "$file"|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 64:
   	if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]];then
                 ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                     ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                           ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ ${file_type} == "cpp" || ${file_type} == "c" || ${file_type} == "java" || ${file_type} == "py" || ${file_type} == "h" || ${file_type} == 'js' ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 68:
   	if [[ "check$file_dir" == "check${module}" ]];then
                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ "check${file_dir}" == "check${module}" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 69:
               let module_file+=1
               ^----------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 89:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 98:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 101:
   	echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 102:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 103:
   	if [[ $file_dir == "docs" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ ${file_dir} == "docs" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 104:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 106:
           if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]];then
                  ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                              ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ "${file}" =~ "docs/zh-CN/docs/sql-manual/" || "${file}" =~ "docs/en/docs/sql-manual/" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 107:
               let doc_sql_manual_num+=1
               ^-----------------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 120:
       echo "doc_num: $doc_num"
                      ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "doc_num: ${doc_num}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 121:
       echo "file_nums: $file_nums"
                        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "file_nums: ${file_nums}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 122:
       echo "doc_sql_manual_num: $doc_sql_manual_num"
                                 ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "doc_sql_manual_num: ${doc_sql_manual_num}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 123:
       if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} && ${doc_sql_manual_num} -eq 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 138:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 146:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 148:
           echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 150:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 151:
           if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "be" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 152:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 156:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 171:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 179:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 181:
           echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 183:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 184:
           if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "fe" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 185:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 189:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 200:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 203:
   	    check_removed_change_file $2 "be"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "be"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 205:
   	    check_all_change_files_is_under_be $2
                                                  ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_be "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 207:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 208:
   	    echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 209:
   	    res=`expr $check_1 \* $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    res=$(expr "$check_1" \* $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 210:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 213:
   	    check_removed_change_file $2 "fe"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "fe"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 215:
   	    check_all_change_files_is_under_fe $2
                                                  ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_fe "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 217:
               res=`expr $check_1 \* $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
               res=$(expr "$check_1" \* $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 218:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 219:
   	    echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 220:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 223:
   	    check_removed_change_file $2 "docs"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "docs"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 225:
   	    check_all_change_files_is_under_doc $2
                                                   ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_doc "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 227:
               res=`expr $check_1 + $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                    ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                    ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
               res=$(expr "$check_1" + $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 228:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 229:
               echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
               echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 230:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 238:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 6:
   echo `date "+%Y-%m-%d %H:%M:%S"` "start to clear oudate file!"
        ^-------------------------^ SC2046 (warning): Quote this to prevent word splitting.
        ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
   
   Did you mean: 
   echo $(date "+%Y-%m-%d %H:%M:%S") "start to clear oudate file!"
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 7:
   cd /home/work/teamcity/TeamCity/piplineWork/Compile/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/Compile/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 8:
   find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                         ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 9:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   ^--^ SC2103 (info): Use a ( subshell ) to avoid having to cd back.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 10:
   cd /home/work/teamcity/TeamCity/piplineWork/feUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/feUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 11:
   find /home/work/teamcity/TeamCity/piplineWork/feUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/feUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 12:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 13:
   cd /home/work/teamcity/TeamCity/piplineWork/beUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/beUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 14:
   find /home/work/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 15:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 16:
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 17:
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                         ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 18:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 19:
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 20:
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_compile.sh line 3:
   id=$(echo $RANDOM)
      ^-------------^ SC2116 (style): Useless echo? Instead of 'cmd $(echo foo)', just use 'cmd foo'.
             ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
             ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   id=$(echo "$RANDOM")
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_compile.sh line 5:
   docker run -i --rm --name doris-compile-$id -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v $work_path:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
                                           ^-^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                           ^-^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                                    ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   docker run -i --rm --name doris-compile-"$id" -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v $work_path:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 40:
       docker_name="doris-compile-"$(echo $RANDOM)
                                  ^-- SC1078 (warning): Did you forget to close this double quoted string?
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 42:
       cmd="docker run -i --rm --name doris-compile-$id -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v %system.teamcity.build.workingDir%:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
           ^-- SC1079 (info): This is actually an end quote, but due to next char it looks suspect.
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 43:
   "
   ^-- SC1073 (error): Couldn't parse this double quoted string. Fix to allow more checks.
   ^-- SC1009 (info): The mentioned syntax error was in this simple command.
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 45:
   
   ^-- SC1072 (error): Expected end of double quoted string. Fix any mentioned problems and try again.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 5:
   <<'COMMENT'
   ^---------^ SC2188 (warning): This redirection doesn't have a command. Move to its command (or use 'true' as no-op).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 145:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 147:
           --cancel_running_build) build_id=$2; cancel_running_build $build_id; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --cancel_running_build) build_id=$2; cancel_running_build "$build_id"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 148:
           --cancel_pending_build) build_id=$2; cancel_pending_build $build_id; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --cancel_pending_build) build_id=$2; cancel_pending_build "$build_id"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 149:
           --show_build_state) build_id=$2; res=$(show_build_state $build_id); echo $res; shift ;;
                                                                   ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                   ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --show_build_state) build_id=$2; res=$(show_build_state "$build_id"); echo $res; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 150:
           --show_build_status) build_id=$2; res=$(show_build_status $build_id); echo $res; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                      ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                      ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --show_build_status) build_id=$2; res=$(show_build_status "$build_id"); echo $res; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 153:
           --get_all_builds_of_pr_id) get_all_builds $2; shift ;;
                                                     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --get_all_builds_of_pr_id) get_all_builds "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 161:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 4:
   zcp_TOKEN="eyJ0eXAiOiAiVENWMiJ9.bW1DcHJpRWNCSktnREhLaHd5Y1lndmpycnJ3.NmEwM2E3YTEtMTVmYy00NGU0LWI1OTAtMzU3MzljODE0Njdk"
   ^-------^ SC2034 (warning): zcp_TOKEN appears unused. Verify use (or export if used externally).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 7:
   zcp_TEAMCITY_SERVER="http://43.129.232.36:8111"
   ^-----------------^ SC2034 (warning): zcp_TEAMCITY_SERVER appears unused. Verify use (or export if used externally).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 40:
       state=$(show_build_state $build_id)
                                ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(show_build_state "$build_id")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 41:
       if [[ $state == "running" ]];then
             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${state} == "running" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 43:
           cmd="/app/rest/builds/id:$build_id"
                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd="/app/rest/builds/id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 44:
           cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
               ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd=${cmd}" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 45:
           url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                        ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                  ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                 ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                          ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                           ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 46:
           res=$(eval $eval)
                      ^---^ SC2154 (warning): eval is referenced but not assigned (for output from commands, use "$(eval ...)" ).
                      ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=$(eval "$eval")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 47:
           check=$(echo $res |grep status="UNKNOWN")
                        ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                        ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check=$(echo "$res" |grep status="UNKNOWN")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 48:
           if [[ -z $check ]];then
                    ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ -z ${check} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 57:
       state=$(show_build_state $build_id)
                                ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(show_build_state "$build_id")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 58:
       if [[ $state == "queued" ]];then
             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${state} == "queued" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 59:
           cmd="app/rest/buildQueue/id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd="app/rest/buildQueue/id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 60:
           cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
               ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd=${cmd}" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 61:
           url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                        ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                  ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                 ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                          ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                           ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 63:
           res=$(eval $eval)
                      ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=$(eval "$eval")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 64:
           check=$(echo $res |grep status="UNKNOWN")
                        ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                        ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check=$(echo "$res" |grep status="UNKNOWN")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 65:
           if [[ -z $check ]];then
                    ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ -z ${check} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 73:
       cmd="app/rest/builds?locator=id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 74:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 76:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 79:
       check=$(echo $res|grep "<builds count=\"1\"")
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       check=$(echo "$res"|grep "<builds count=\"1\"")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 80:
       if [[ -z $check ]]; then
                ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ -z ${check} ]]; then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 84:
       state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                   ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(echo "$res" |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g')
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 86:
       echo $state
            ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "$state"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 91:
       cmd="app/rest/builds?locator=id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 92:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 94:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 96:
       check1=$(echo $res|grep "<builds count=\"1\"")
                     ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                     ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       check1=$(echo "$res"|grep "<builds count=\"1\"")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 97:
       if [[ -z $check1 ]]; then
                ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ -z ${check1} ]]; then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 105:
       state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                   ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(echo "$res" |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g')
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 107:
       echo $state
            ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "$state"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 112:
       cmd="app/rest/builds?locator=branch:$branch"
                                           ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=branch:${branch}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 113:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 114:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 119:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                           ^-^ SC2089 (warning): Quotes/backslashes will be treated literally. Use an array.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 121:
       res=eval $url
       ^-----------^ SC2209 (warning): Use var=$(command) to assign output (or quote to assign string).
                ^--^ SC2090 (warning): Quotes/backslashes in this variable will not be respected.
                ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=eval ${url}
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 126:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $JSON_HEADER $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                   ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${JSON_HEADER} ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 128:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 12:
       while [ 1 -eq 1 ]
             ^---------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                 ^-^ SC2050 (warning): This expression is constant. Did you forget the $ on a variable?
   
   Did you mean: 
       while [[ 1 -eq 1 ]]
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 15:
   	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
                ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                              ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                            ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                    ^-------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^---^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files?per_page="$per_page"\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 17:
           if [ ${res_len} -ne 0 ];then
              ^------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           if [[ "${res_len}" -ne 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 18:
   	    let page+=1
               ^---------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 20:
   	    files=(${res[@]} ${files[*]})
                      ^-------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
                                ^---------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 30:
   out=($(get_all_change_files 11154))
        ^---------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check.sh line 3:
   <<'COMMENT'
   ^---------^ SC2188 (warning): This redirection doesn't have a command. Move to its command (or use 'true' as no-op).
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 26:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 30:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 33:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 34:
           if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 35:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 46:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 60:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 65:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 68:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 69:
           if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "be" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 70:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 74:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 88:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 93:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 96:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 97:
           if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "fe" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 98:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 102:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 113:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 115:
           --is_modify_only_invoved_be) check_all_change_files_is_under_be $2; shift ;;
                                                                           ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --is_modify_only_invoved_be) check_all_change_files_is_under_be "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 116:
           --is_modify_only_invoved_fe) check_all_change_files_is_under_fe $2; shift ;;
                                                                           ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --is_modify_only_invoved_fe) check_all_change_files_is_under_fe "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 117:
   	--is_modify_only_doc) check_all_change_files_is_under_doc $2; shift ;;
                                                                     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	--is_modify_only_doc) check_all_change_files_is_under_doc "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 124:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   For more information:
     https://www.shellcheck.net/wiki/SC2068 -- Double quote array expansions to ...
     https://www.shellcheck.net/wiki/SC2071 -- > is for string comparisons. Use ...
     https://www.shellcheck.net/wiki/SC1078 -- Did you forget to close this doub...
   ----------
   
   You can address the above issues in one of three ways:
   1. Manually correct the issue in the offending shell script;
   2. Disable specific issues by adding the comment:
     # shellcheck disable=NNNN
   above the line that contains the issue, where NNNN is the error code;
   3. Add '-e NNNN' to the SHELLCHECK_OPTS setting in your .yml action file.
   
   
   
   ```
   </details>
   
   <details>
   <summary>shfmt errors</summary>
   
   ```
   
   'shfmt ' returned error 1 finding the following formatting issues:
   
   ----------
   --- teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh
   @@ -8,23 +8,22 @@
    echo "===================================="
    echo "START TO DETECT RESIDUAL PROCESSES!"
    
   -check=$(lsof -i:$port|awk '{print $2}'|wc -l)
   -if [ "check$check" != "check0" ];then
   -    if [ "check"${case_level} == "check" ];then
   -        check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep deleted||wc -l)
   +check=$(lsof -i:$port | awk '{print $2}' | wc -l)
   +if [ "check$check" != "check0" ]; then
   +    if [ "check"${case_level} == "check" ]; then
   +        check_res=$(pwdx $(lsof -i:$port | grep -v PID | awk '{print $2}') | grep $env_name | grep deleted || wc -l)
        else
   -        check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep $case_level|grep deleted||wc -l)
   +        check_res=$(pwdx $(lsof -i:$port | grep -v PID | awk '{print $2}') | grep $env_name | grep $case_level | grep deleted || wc -l)
        fi
   -    if [ "check$check_res" != "check0" ];then
   -        be_pid=(`lsof -i:$port|grep -v PID|awk '{print $2}'`)
   +    if [ "check$check_res" != "check0" ]; then
   +        be_pid=($(lsof -i:$port | grep -v PID | awk '{print $2}'))
            echo "Detected residual processes: ${be_pid}"
            echo "kill residual processes: kill -9 ${be_pid}"
            kill -9 $be_pid
        fi
    else
   -        echo "No residual processes"
   +    echo "No residual processes"
    fi
    
   -
    echo "FINISH DETECT RESIDUAL PROCESSES!"
    echo "==================================="
   --- teamcity/doris/benchmark/clickbench/common/check_change_file.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/check_change_file.sh
   @@ -7,7 +7,7 @@
    GITHUB_TOKEN=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
    
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
    
   @@ -16,23 +16,21 @@
        $0 --is_modify_only_invoved_fe pr_id          if pr changed code only invoved fe doc, fs_brocker, return 0; else return 2
        $0 --is_modify_only_invoved_doc pr_id         if pr changed code only invoved doc, fs_brocker, return 0; else return 2
      "
   -  exit 1
   +    exit 1
    }
    
   -
   -function get_all_change_files(){
   +function get_all_change_files() {
        pr_id=$1
        files=()
    
        page=1
        per_page=100
   -    while [ 1 -eq 1 ]
   -    do
   +    while [ 1 -eq 1 ]; do
            #echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   -        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   +        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page | jq -r '.[]|select(.status = "removed")| .filename'))
            res_len=${#res[@]}
            #echo "================"$res_len
   -        if [ ${res_len} -ne 0 ];then
   +        if [ ${res_len} -ne 0 ]; then
                let page+=1
                #files="${res[@]}""$files"
                files=(${res[@]} ${files[*]})
   @@ -44,8 +42,7 @@
        echo "${files[@]}"
    }
    
   -
   -function check_removed_change_file(){
   +function check_removed_change_file() {
        pr_id=$1
        module=$2
        owner='apache'
   @@ -55,26 +52,25 @@
        file_nums=${#res[@]}
        is_code_change_flag=false
        module_file=0
   -    for file in ${res[@]}
   -    do
   -	#echo "$file"
   -	file_dir=$(echo $file|cut -d '/' -f 1)
   -        file_type=$(echo $file|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
   -	#if [[  "check$file_dir" == "check${module}" &&  ($file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js') ]];then
   -	if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]];then
   -	    echo "code has changed, ${file} is deleted"
   -	    is_code_change_flag=true
   -	fi
   -	if [[ "check$file_dir" == "check${module}" ]];then
   +    for file in ${res[@]}; do
   +        #echo "$file"
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        file_type=$(echo $file | rev | cut -d / -f 1 | cut -d '.' -f 1 | rev)
   +        #if [[  "check$file_dir" == "check${module}" &&  ($file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js') ]];then
   +        if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]]; then
   +            echo "code has changed, ${file} is deleted"
   +            is_code_change_flag=true
   +        fi
   +        if [[ "check$file_dir" == "check${module}" ]]; then
                let module_file+=1
   -	fi
   +        fi
        done
    
   -    if [[ "${is_code_change_flag}" == "false" ]];then
   -	echo "NO CODE FILE DELETED, PASSED!"
   +    if [[ "${is_code_change_flag}" == "false" ]]; then
   +        echo "NO CODE FILE DELETED, PASSED!"
            return 0
        else
   -	echo "CODE FILE BE DELETED"
   +        echo "CODE FILE BE DELETED"
            return 2
        fi
    
   @@ -95,20 +91,18 @@
    
        doc_num=0
        doc_sql_manual_num=0
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on docs/fs_brokers or not
   -	echo "$file"
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -	if [[ $file_dir == "docs" ]];then
   +        echo "$file"
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "docs" ]]; then
                let doc_num+=1
   -	fi
   -        if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]];then
   +        fi
   +        if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]]; then
                let doc_sql_manual_num+=1
                continue
            fi
    
   -
            #check change file is md/txt/doc file
            #file_type=$(echo $file|cut -d '.' -f 2)
            #if [[ $file_type == "md" || $file_type == "txt" || $file_type == "doc" ]];then
   @@ -120,7 +114,7 @@
        echo "doc_num: $doc_num"
        echo "file_nums: $file_nums"
        echo "doc_sql_manual_num: $doc_sql_manual_num"
   -    if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]];then
   +    if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]]; then
            echo "JUST MODIFY DOCUMENT, NO COED CHSNGED, PASSED!"
            return 0
        else
   @@ -143,17 +137,16 @@
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED BE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            echo "$file"
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
   -	fi
   +        fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY BE CODE, NO NEED RUN FE UT, PASSED!"
            return 0
        else
   @@ -176,17 +169,16 @@
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED FE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            echo "$file"
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY FE CODE, NO NEED RUN BE UT, PASSED!"
            return 0
        else
   @@ -197,42 +189,49 @@
    
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in
   +    if [ $# ] >0; then
   +        case "$1" in
            --is_modify_only_invoved_be)
   -	    check_removed_change_file $2 "be"
   -	    check_1=$?
   -	    check_all_change_files_is_under_be $2
   -	    check_2=$?
   -	    echo ${check_1}
   -	    echo ${check_2}
   -	    res=`expr $check_1 \* $check_2`
   -	    exit $res
   -	    shift ;;
   +            check_removed_change_file $2 "be"
   +            check_1=$?
   +            check_all_change_files_is_under_be $2
   +            check_2=$?
   +            echo ${check_1}
   +            echo ${check_2}
   +            res=$(expr $check_1 \* $check_2)
   +            exit $res
   +            shift
   +            ;;
            --is_modify_only_invoved_fe)
   -	    check_removed_change_file $2 "fe"
   -	    check_1=$?
   -	    check_all_change_files_is_under_fe $2
   -	    check_2=$?
   -            res=`expr $check_1 \* $check_2`
   -	    echo ${check_1}
   -	    echo ${check_2}
   -	    exit $res
   -	    shift ;;
   -	--is_modify_only_invoved_doc)
   -	    check_removed_change_file $2 "docs"
   -	    check_1=$?
   -	    check_all_change_files_is_under_doc $2
   -	    check_2=$?
   -            res=`expr $check_1 + $check_2`
   -	    echo ${check_1}
   +            check_removed_change_file $2 "fe"
   +            check_1=$?
   +            check_all_change_files_is_under_fe $2
   +            check_2=$?
   +            res=$(expr $check_1 \* $check_2)
   +            echo ${check_1}
                echo ${check_2}
   -	    exit $res
   -	    shift ;;
   -        *) echo "ERROR"; usage; exit 1 ;;
   -    esac
   +            exit $res
   +            shift
   +            ;;
   +        --is_modify_only_invoved_doc)
   +            check_removed_change_file $2 "docs"
   +            check_1=$?
   +            check_all_change_files_is_under_doc $2
   +            check_2=$?
   +            res=$(expr $check_1 + $check_2)
   +            echo ${check_1}
   +            echo ${check_2}
   +            exit $res
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            usage
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/common/clean_disk.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/clean_disk.sh
   @@ -3,7 +3,7 @@
    df -h
    existsTime=720
    #delete files created 20 hours ago
   -echo `date "+%Y-%m-%d %H:%M:%S"` "start to clear oudate file!"
   +echo $(date "+%Y-%m-%d %H:%M:%S") "start to clear oudate file!"
    cd /home/work/teamcity/TeamCity/piplineWork/Compile/
    find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
    cd -
   teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh:43:1: reached EOF without closing quote "
   --- teamcity/doris/benchmark/clickbench/common/teamcity_api.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/teamcity_api.sh
   @@ -139,23 +139,55 @@
    }
    COMMENT
    
   -
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in 
   -        --cancel_running_build) build_id=$2; cancel_running_build $build_id; shift ;;
   -        --cancel_pending_build) build_id=$2; cancel_pending_build $build_id; shift ;;
   -        --show_build_state) build_id=$2; res=$(show_build_state $build_id); echo $res; shift ;;
   -        --show_build_status) build_id=$2; res=$(show_build_status $build_id); echo $res; shift ;;
   -        --show_latest_builds) get_latest_builds; shift ;;
   -        --show_queued_builds) get_queued_builds; shift ;;
   -        --get_all_builds_of_pr_id) get_all_builds $2; shift ;;
   -	--help) usage; shift ;;
   -        *) echo "ERROR"; exit 1 ;;
   -    esac
   +    if [ $# ] >0; then
   +        case "$1" in
   +        --cancel_running_build)
   +            build_id=$2
   +            cancel_running_build $build_id
   +            shift
   +            ;;
   +        --cancel_pending_build)
   +            build_id=$2
   +            cancel_pending_build $build_id
   +            shift
   +            ;;
   +        --show_build_state)
   +            build_id=$2
   +            res=$(show_build_state $build_id)
   +            echo $res
   +            shift
   +            ;;
   +        --show_build_status)
   +            build_id=$2
   +            res=$(show_build_status $build_id)
   +            echo $res
   +            shift
   +            ;;
   +        --show_latest_builds)
   +            get_latest_builds
   +            shift
   +            ;;
   +        --show_queued_builds)
   +            get_queued_builds
   +            shift
   +            ;;
   +        --get_all_builds_of_pr_id)
   +            get_all_builds $2
   +            shift
   +            ;;
   +        --help)
   +            usage
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/common/teamcity_common.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/teamcity_common.sh
   @@ -11,7 +11,7 @@
    JSON_HEADER="--header \"Accept: application/json\""
    
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
         --cancel_running_build build_id    cancel a specific running build
   @@ -32,21 +32,21 @@
        $0 --show_queued_builds             show all queued builds
        $0 --get_all_builds_of_pr_id 9151   get all 9151 builds
      "
   -  exit 1
   +    exit 1
    }
    
    cancel_running_build() {
        build_id=$1
        state=$(show_build_state $build_id)
   -    if [[ $state == "running" ]];then
   +    if [[ $state == "running" ]]; then
            #curl --header "Authorization: Bearer eyJ0eXAiOiAiVENWMiJ9.bW1DcHJpRWNCSktnREhLaHd5Y1lndmpycnJ3.NmEwM2E3YTEtMTVmYy00NGU0LWI1OTAtMzU3MzljODE0Njdk" http://43.129.232.36:8111/app/rest/builds/id:333 -X POST -H 'Content-Type: application/json' -d '{ "buildCancelRequest": {       "comment": "Already running builds will be stopped.",      "readdIntoQueue": "false"    }  }'
            cmd="/app/rest/builds/id:$build_id"
            cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
            url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
            res=$(eval $eval)
   -        check=$(echo $res |grep status="UNKNOWN")
   -        if [[ -z $check ]];then
   -           echo "cancel fail!"
   +        check=$(echo $res | grep status="UNKNOWN")
   +        if [[ -z $check ]]; then
   +            echo "cancel fail!"
            fi
        fi
    
   @@ -55,15 +55,15 @@
    cancel_pending_build() {
        build_id=$1
        state=$(show_build_state $build_id)
   -    if [[ $state == "queued" ]];then
   +    if [[ $state == "queued" ]]; then
            cmd="app/rest/buildQueue/id:$build_id"
            cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
            url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
            #echo $url
            res=$(eval $eval)
   -        check=$(echo $res |grep status="UNKNOWN")
   -        if [[ -z $check ]];then
   -           echo "cancel fail!"
   +        check=$(echo $res | grep status="UNKNOWN")
   +        if [[ -z $check ]]; then
   +            echo "cancel fail!"
            fi
        fi
    }
   @@ -73,15 +73,15 @@
        cmd="app/rest/builds?locator=id:$build_id"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   -    
   +    res=$(eval $url)
   +
        #check build exist or not
   -    check=$(echo $res|grep "<builds count=\"1\"")
   +    check=$(echo $res | grep "<builds count=\"1\"")
        if [[ -z $check ]]; then
            return
        fi
        #get state
   -    state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
   +    state=$(echo $res | awk -F ' ' '{print $9" "$10" "$11}' | awk -F "state=" '{print $2}' | cut -d ' ' -f 1 | sed 's/\"//g')
        #only 2 state: queued and finished
        echo $state
    }
   @@ -91,9 +91,9 @@
        cmd="app/rest/builds?locator=id:$build_id"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   +    res=$(eval $url)
        #check build exist or not
   -    check1=$(echo $res|grep "<builds count=\"1\"")
   +    check1=$(echo $res | grep "<builds count=\"1\"")
        if [[ -z $check1 ]]; then
            return
        fi
   @@ -102,8 +102,8 @@
        #if [[ -z $check ]]; then
        #    return
        #fi
   -    state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
   -    #only 2 state: 
   +    state=$(echo $res | awk -F ' ' '{print $9" "$10" "$11}' | awk -F "status=" '{print $2}' | cut -d ' ' -f 1 | sed 's/\"//g')
   +    #only 2 state:
        echo $state
    }
    
   @@ -111,7 +111,7 @@
        branch=$1
        cmd="app/rest/builds?locator=branch:$branch"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
   -    res=`eval $url`
   +    res=$(eval $url)
    }
    
    get_latest_builds() {
   @@ -125,14 +125,12 @@
        cmd="app/rest/buildQueue"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $JSON_HEADER $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   +    res=$(eval $url)
        #a=$(echo $res|grep -oP 'build id=.*'|head -1)
   -    
   -    
   +
        #a=$res
        #while [[ "check"$a != "check" ]]
        #do
        #    a=$(echo $a|awk -F 'build id="' '{print $2}')
        #done
    }
   -
   --- teamcity/doris/benchmark/clickbench/common/test.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/test.sh
   @@ -3,33 +3,29 @@
    repo=doris
    GITHUB_TOKEN=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
    
   -function get_all_change_files(){
   +function get_all_change_files() {
        pr_id=$1
        files=()
    
        page=1
        per_page=100
   -    while [ 1 -eq 1 ]
   -    do
   -	#echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   -	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   +    while [ 1 -eq 1 ]; do
   +        #echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   +        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page | jq -r '.[]|select(.status = "removed")| .filename'))
            res_len=${#res[@]}
   -        if [ ${res_len} -ne 0 ];then
   -	    let page+=1
   +        if [ ${res_len} -ne 0 ]; then
   +            let page+=1
                #files="${res[@]}""$files"
   -	    files=(${res[@]} ${files[*]})
   +            files=(${res[@]} ${files[*]})
            else
                break
            fi
   -	echo 
   +        echo
        done
        echo "${files[@]}"
    }
    
   -
    out=($(get_all_change_files 11154))
    
   -
   -
    echo "=================="
    echo "${out[@]}"
   --- teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh
   @@ -3,9 +3,8 @@
    #res=(`git diff --name-only HEAD~ HEAD`)
    #file_nums=${#res[@]}
    
   -
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
    
   @@ -14,24 +13,22 @@
        $0 --is_modify_only_invoved_fe pr_id          if pr changed code only invoved fe doc, fs_brocker, return 0; else return 2
        $0 --is_modify_only_invoved_doc pr_id         if pr changed code only invoved doc, fs_brocker, return 0; else return 2
      "
   -  exit 1
   +    exit 1
    }
    
   -
    function check_all_change_files_is_under_doc() {
    
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on docs/fs_brokers or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
   @@ -43,7 +40,7 @@
            #fi
        done
    
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY DOCUMENT, NO COED CHSNGED, PASSED!"
            exit 0
        else
   @@ -57,21 +54,20 @@
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED BE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
   -	fi
   +        fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY BE CODE, NO NEED RUN FE UT, PASSED!"
            exit 0
        else
   @@ -85,21 +81,20 @@
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED FE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY FE CODE, NO NEED RUN BE UT, PASSED!"
            exit 0
        else
   @@ -110,15 +105,28 @@
    
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in
   -        --is_modify_only_invoved_be) check_all_change_files_is_under_be $2; shift ;;
   -        --is_modify_only_invoved_fe) check_all_change_files_is_under_fe $2; shift ;;
   -	--is_modify_only_doc) check_all_change_files_is_under_doc $2; shift ;;
   -        *) echo "ERROR"; usage; exit 1 ;;
   -    esac
   +    if [ $# ] >0; then
   +        case "$1" in
   +        --is_modify_only_invoved_be)
   +            check_all_change_files_is_under_be $2
   +            shift
   +            ;;
   +        --is_modify_only_invoved_fe)
   +            check_all_change_files_is_under_fe $2
   +            shift
   +            ;;
   +        --is_modify_only_doc)
   +            check_all_change_files_is_under_doc $2
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            usage
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/prepare.sh.orig
   +++ teamcity/doris/benchmark/clickbench/prepare.sh
   @@ -22,9 +22,3 @@
    fi
    qa_home="${pipeline_home}/selectdb-qa"
    cd "${qa_home}" && git stash && git checkout main && git pull && cd -
   -
   -
   -
   -
   -
   -
   ----------
   
   You can reformat the above files to meet shfmt's requirements by typing:
   
     shfmt  -w filename
   
   
   ```
   </details>
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] github-actions[bot] commented on pull request #13259: test benchmark pipeline

Posted by GitBox <gi...@apache.org>.
github-actions[bot] commented on PR #13259:
URL: https://github.com/apache/doris/pull/13259#issuecomment-1326319852

   #### `sh-checker report`
   
   To get the full details, please check in the [job]("https://github.com/apache/doris/actions/runs/3540164824") output.
   
   <details>
   <summary>shellcheck errors</summary>
   
   ```
   
   'shellcheck ' returned error 1 finding the following syntactical issues:
   
   ----------
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 11:
   check=$(lsof -i:$port|awk '{print $2}'|wc -l)
                   ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   check=$(lsof -i:"$port"|awk '{print $2}'|wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 12:
   if [ "check$check" != "check0" ];then
      ^---------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
              ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   if [[ "check${check}" != "check0" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 13:
       if [ "check"${case_level} == "check" ];then
          ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                   ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       if [[ "check""${case_level}" == "check" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 14:
           check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep deleted||wc -l)
                            ^-- SC2046 (warning): Quote this to prevent word splitting.
                            ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                     ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                     ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                              ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                              ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check_res=$(pwdx $(lsof -i:"$port"|grep -v PID|awk '{print $2}')|grep $env_name|grep deleted||wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 16:
           check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep $case_level|grep deleted||wc -l)
                            ^-- SC2046 (warning): Quote this to prevent word splitting.
                            ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                     ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                     ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                              ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                              ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                             ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                             ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check_res=$(pwdx $(lsof -i:"$port"|grep -v PID|awk '{print $2}')|grep $env_name|grep $case_level|grep deleted||wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 18:
       if [ "check$check_res" != "check0" ];then
          ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                  ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ "check${check_res}" != "check0" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 19:
           be_pid=(`lsof -i:$port|grep -v PID|awk '{print $2}'`)
                   ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                   ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                            ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                            ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           be_pid=($(lsof -i:"$port"|grep -v PID|awk '{print $2}'))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 20:
           echo "Detected residual processes: ${be_pid}"
                                              ^-------^ SC2128 (warning): Expanding an array without an index only gives the first element.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 21:
           echo "kill residual processes: kill -9 ${be_pid}"
                                                  ^-------^ SC2128 (warning): Expanding an array without an index only gives the first element.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 22:
           kill -9 $be_pid
                   ^-----^ SC2128 (warning): Expanding an array without an index only gives the first element.
                   ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           kill -9 "$be_pid"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 29:
       while [ 1 -eq 1 ]
             ^---------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                 ^-^ SC2050 (warning): This expression is constant. Did you forget the $ on a variable?
   
   Did you mean: 
       while [[ 1 -eq 1 ]]
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 32:
           res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
                ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                              ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                            ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                    ^-------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^---^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files?per_page="$per_page"\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 35:
           if [ ${res_len} -ne 0 ];then
              ^------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           if [[ "${res_len}" -ne 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 36:
               let page+=1
               ^---------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 38:
               files=(${res[@]} ${files[*]})
                      ^-------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
                                ^---------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 54:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 58:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 61:
   	file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 62:
           file_type=$(echo $file|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
                            ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                            ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_type=$(echo "$file"|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 64:
   	if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]];then
                 ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                     ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                           ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ ${file_type} == "cpp" || ${file_type} == "c" || ${file_type} == "java" || ${file_type} == "py" || ${file_type} == "h" || ${file_type} == 'js' ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 68:
   	if [[ "check$file_dir" == "check${module}" ]];then
                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ "check${file_dir}" == "check${module}" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 69:
               let module_file+=1
               ^----------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 89:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 98:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 101:
   	echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 102:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 103:
   	if [[ $file_dir == "docs" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ ${file_dir} == "docs" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 104:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 106:
           if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]];then
                  ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                              ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ "${file}" =~ "docs/zh-CN/docs/sql-manual/" || "${file}" =~ "docs/en/docs/sql-manual/" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 107:
               let doc_sql_manual_num+=1
               ^-----------------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 120:
       echo "doc_num: $doc_num"
                      ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "doc_num: ${doc_num}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 121:
       echo "file_nums: $file_nums"
                        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "file_nums: ${file_nums}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 122:
       echo "doc_sql_manual_num: $doc_sql_manual_num"
                                 ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "doc_sql_manual_num: ${doc_sql_manual_num}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 123:
       if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} && ${doc_sql_manual_num} -eq 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 138:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 146:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 148:
           echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 150:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 151:
           if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "be" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 152:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 156:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 171:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 179:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 181:
           echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 183:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 184:
           if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "fe" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 185:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 189:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 200:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 203:
   	    check_removed_change_file $2 "be"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "be"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 205:
   	    check_all_change_files_is_under_be $2
                                                  ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_be "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 207:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 208:
   	    echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 209:
   	    res=`expr $check_1 \* $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    res=$(expr "$check_1" \* $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 210:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 213:
   	    check_removed_change_file $2 "fe"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "fe"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 215:
   	    check_all_change_files_is_under_fe $2
                                                  ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_fe "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 217:
               res=`expr $check_1 \* $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
               res=$(expr "$check_1" \* $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 218:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 219:
   	    echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 220:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 223:
   	    check_removed_change_file $2 "docs"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "docs"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 225:
   	    check_all_change_files_is_under_doc $2
                                                   ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_doc "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 227:
               res=`expr $check_1 + $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                    ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                    ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
               res=$(expr "$check_1" + $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 228:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 229:
               echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
               echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 230:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 238:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 6:
   echo `date "+%Y-%m-%d %H:%M:%S"` "start to clear oudate file!"
        ^-------------------------^ SC2046 (warning): Quote this to prevent word splitting.
        ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
   
   Did you mean: 
   echo $(date "+%Y-%m-%d %H:%M:%S") "start to clear oudate file!"
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 7:
   cd /home/work/teamcity/TeamCity/piplineWork/Compile/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/Compile/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 8:
   find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                         ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 9:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   ^--^ SC2103 (info): Use a ( subshell ) to avoid having to cd back.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 10:
   cd /home/work/teamcity/TeamCity/piplineWork/feUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/feUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 11:
   find /home/work/teamcity/TeamCity/piplineWork/feUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/feUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 12:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 13:
   cd /home/work/teamcity/TeamCity/piplineWork/beUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/beUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 14:
   find /home/work/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 15:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 16:
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 17:
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                         ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 18:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 19:
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 20:
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_compile.sh line 3:
   id=$(echo $RANDOM)
      ^-------------^ SC2116 (style): Useless echo? Instead of 'cmd $(echo foo)', just use 'cmd foo'.
             ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
             ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   id=$(echo "$RANDOM")
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_compile.sh line 5:
   docker run -i --rm --name doris-compile-$id -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v $work_path:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
                                           ^-^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                           ^-^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                                    ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   docker run -i --rm --name doris-compile-"$id" -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v $work_path:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 40:
       docker_name="doris-compile-"$(echo $RANDOM)
                                  ^-- SC1078 (warning): Did you forget to close this double quoted string?
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 42:
       cmd="docker run -i --rm --name doris-compile-$id -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v %system.teamcity.build.workingDir%:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
           ^-- SC1079 (info): This is actually an end quote, but due to next char it looks suspect.
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 43:
   "
   ^-- SC1073 (error): Couldn't parse this double quoted string. Fix to allow more checks.
   ^-- SC1009 (info): The mentioned syntax error was in this simple command.
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 45:
   
   ^-- SC1072 (error): Expected end of double quoted string. Fix any mentioned problems and try again.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 5:
   <<'COMMENT'
   ^---------^ SC2188 (warning): This redirection doesn't have a command. Move to its command (or use 'true' as no-op).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 145:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 147:
           --cancel_running_build) build_id=$2; cancel_running_build $build_id; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --cancel_running_build) build_id=$2; cancel_running_build "$build_id"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 148:
           --cancel_pending_build) build_id=$2; cancel_pending_build $build_id; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --cancel_pending_build) build_id=$2; cancel_pending_build "$build_id"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 149:
           --show_build_state) build_id=$2; res=$(show_build_state $build_id); echo $res; shift ;;
                                                                   ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                   ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --show_build_state) build_id=$2; res=$(show_build_state "$build_id"); echo $res; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 150:
           --show_build_status) build_id=$2; res=$(show_build_status $build_id); echo $res; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                      ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                      ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --show_build_status) build_id=$2; res=$(show_build_status "$build_id"); echo $res; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 153:
           --get_all_builds_of_pr_id) get_all_builds $2; shift ;;
                                                     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --get_all_builds_of_pr_id) get_all_builds "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 161:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 4:
   zcp_TOKEN="eyJ0eXAiOiAiVENWMiJ9.bW1DcHJpRWNCSktnREhLaHd5Y1lndmpycnJ3.NmEwM2E3YTEtMTVmYy00NGU0LWI1OTAtMzU3MzljODE0Njdk"
   ^-------^ SC2034 (warning): zcp_TOKEN appears unused. Verify use (or export if used externally).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 7:
   zcp_TEAMCITY_SERVER="http://43.129.232.36:8111"
   ^-----------------^ SC2034 (warning): zcp_TEAMCITY_SERVER appears unused. Verify use (or export if used externally).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 40:
       state=$(show_build_state $build_id)
                                ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(show_build_state "$build_id")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 41:
       if [[ $state == "running" ]];then
             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${state} == "running" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 43:
           cmd="/app/rest/builds/id:$build_id"
                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd="/app/rest/builds/id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 44:
           cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
               ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd=${cmd}" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 45:
           url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                        ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                  ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                 ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                          ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                           ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 46:
           res=$(eval $eval)
                      ^---^ SC2154 (warning): eval is referenced but not assigned (for output from commands, use "$(eval ...)" ).
                      ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=$(eval "$eval")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 47:
           check=$(echo $res |grep status="UNKNOWN")
                        ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                        ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check=$(echo "$res" |grep status="UNKNOWN")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 48:
           if [[ -z $check ]];then
                    ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ -z ${check} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 57:
       state=$(show_build_state $build_id)
                                ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(show_build_state "$build_id")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 58:
       if [[ $state == "queued" ]];then
             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${state} == "queued" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 59:
           cmd="app/rest/buildQueue/id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd="app/rest/buildQueue/id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 60:
           cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
               ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd=${cmd}" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 61:
           url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                        ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                  ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                 ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                          ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                           ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 63:
           res=$(eval $eval)
                      ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=$(eval "$eval")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 64:
           check=$(echo $res |grep status="UNKNOWN")
                        ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                        ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check=$(echo "$res" |grep status="UNKNOWN")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 65:
           if [[ -z $check ]];then
                    ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ -z ${check} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 73:
       cmd="app/rest/builds?locator=id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 74:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 76:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 79:
       check=$(echo $res|grep "<builds count=\"1\"")
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       check=$(echo "$res"|grep "<builds count=\"1\"")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 80:
       if [[ -z $check ]]; then
                ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ -z ${check} ]]; then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 84:
       state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                   ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(echo "$res" |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g')
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 86:
       echo $state
            ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "$state"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 91:
       cmd="app/rest/builds?locator=id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 92:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 94:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 96:
       check1=$(echo $res|grep "<builds count=\"1\"")
                     ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                     ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       check1=$(echo "$res"|grep "<builds count=\"1\"")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 97:
       if [[ -z $check1 ]]; then
                ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ -z ${check1} ]]; then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 105:
       state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                   ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(echo "$res" |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g')
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 107:
       echo $state
            ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "$state"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 112:
       cmd="app/rest/builds?locator=branch:$branch"
                                           ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=branch:${branch}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 113:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 114:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 119:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                           ^-^ SC2089 (warning): Quotes/backslashes will be treated literally. Use an array.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 121:
       res=eval $url
       ^-----------^ SC2209 (warning): Use var=$(command) to assign output (or quote to assign string).
                ^--^ SC2090 (warning): Quotes/backslashes in this variable will not be respected.
                ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=eval ${url}
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 126:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $JSON_HEADER $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                   ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${JSON_HEADER} ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 128:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 12:
       while [ 1 -eq 1 ]
             ^---------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                 ^-^ SC2050 (warning): This expression is constant. Did you forget the $ on a variable?
   
   Did you mean: 
       while [[ 1 -eq 1 ]]
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 15:
   	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
                ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                              ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                            ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                    ^-------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^---^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files?per_page="$per_page"\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 17:
           if [ ${res_len} -ne 0 ];then
              ^------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           if [[ "${res_len}" -ne 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 18:
   	    let page+=1
               ^---------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 20:
   	    files=(${res[@]} ${files[*]})
                      ^-------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
                                ^---------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 30:
   out=($(get_all_change_files 11154))
        ^---------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check.sh line 3:
   <<'COMMENT'
   ^---------^ SC2188 (warning): This redirection doesn't have a command. Move to its command (or use 'true' as no-op).
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 26:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 30:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 33:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 34:
           if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 35:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 46:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 60:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 65:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 68:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 69:
           if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "be" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 70:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 74:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 88:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 93:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 96:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 97:
           if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "fe" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 98:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 102:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 113:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 115:
           --is_modify_only_invoved_be) check_all_change_files_is_under_be $2; shift ;;
                                                                           ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --is_modify_only_invoved_be) check_all_change_files_is_under_be "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 116:
           --is_modify_only_invoved_fe) check_all_change_files_is_under_fe $2; shift ;;
                                                                           ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --is_modify_only_invoved_fe) check_all_change_files_is_under_fe "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 117:
   	--is_modify_only_doc) check_all_change_files_is_under_doc $2; shift ;;
                                                                     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	--is_modify_only_doc) check_all_change_files_is_under_doc "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 124:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   For more information:
     https://www.shellcheck.net/wiki/SC2068 -- Double quote array expansions to ...
     https://www.shellcheck.net/wiki/SC2071 -- > is for string comparisons. Use ...
     https://www.shellcheck.net/wiki/SC1078 -- Did you forget to close this doub...
   ----------
   
   You can address the above issues in one of three ways:
   1. Manually correct the issue in the offending shell script;
   2. Disable specific issues by adding the comment:
     # shellcheck disable=NNNN
   above the line that contains the issue, where NNNN is the error code;
   3. Add '-e NNNN' to the SHELLCHECK_OPTS setting in your .yml action file.
   
   
   
   ```
   </details>
   
   <details>
   <summary>shfmt errors</summary>
   
   ```
   
   'shfmt ' returned error 1 finding the following formatting issues:
   
   ----------
   --- teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh
   @@ -8,23 +8,22 @@
    echo "===================================="
    echo "START TO DETECT RESIDUAL PROCESSES!"
    
   -check=$(lsof -i:$port|awk '{print $2}'|wc -l)
   -if [ "check$check" != "check0" ];then
   -    if [ "check"${case_level} == "check" ];then
   -        check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep deleted||wc -l)
   +check=$(lsof -i:$port | awk '{print $2}' | wc -l)
   +if [ "check$check" != "check0" ]; then
   +    if [ "check"${case_level} == "check" ]; then
   +        check_res=$(pwdx $(lsof -i:$port | grep -v PID | awk '{print $2}') | grep $env_name | grep deleted || wc -l)
        else
   -        check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep $case_level|grep deleted||wc -l)
   +        check_res=$(pwdx $(lsof -i:$port | grep -v PID | awk '{print $2}') | grep $env_name | grep $case_level | grep deleted || wc -l)
        fi
   -    if [ "check$check_res" != "check0" ];then
   -        be_pid=(`lsof -i:$port|grep -v PID|awk '{print $2}'`)
   +    if [ "check$check_res" != "check0" ]; then
   +        be_pid=($(lsof -i:$port | grep -v PID | awk '{print $2}'))
            echo "Detected residual processes: ${be_pid}"
            echo "kill residual processes: kill -9 ${be_pid}"
            kill -9 $be_pid
        fi
    else
   -        echo "No residual processes"
   +    echo "No residual processes"
    fi
    
   -
    echo "FINISH DETECT RESIDUAL PROCESSES!"
    echo "==================================="
   --- teamcity/doris/benchmark/clickbench/common/check_change_file.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/check_change_file.sh
   @@ -7,7 +7,7 @@
    GITHUB_TOKEN=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
    
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
    
   @@ -16,23 +16,21 @@
        $0 --is_modify_only_invoved_fe pr_id          if pr changed code only invoved fe doc, fs_brocker, return 0; else return 2
        $0 --is_modify_only_invoved_doc pr_id         if pr changed code only invoved doc, fs_brocker, return 0; else return 2
      "
   -  exit 1
   +    exit 1
    }
    
   -
   -function get_all_change_files(){
   +function get_all_change_files() {
        pr_id=$1
        files=()
    
        page=1
        per_page=100
   -    while [ 1 -eq 1 ]
   -    do
   +    while [ 1 -eq 1 ]; do
            #echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   -        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   +        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page | jq -r '.[]|select(.status = "removed")| .filename'))
            res_len=${#res[@]}
            #echo "================"$res_len
   -        if [ ${res_len} -ne 0 ];then
   +        if [ ${res_len} -ne 0 ]; then
                let page+=1
                #files="${res[@]}""$files"
                files=(${res[@]} ${files[*]})
   @@ -44,8 +42,7 @@
        echo "${files[@]}"
    }
    
   -
   -function check_removed_change_file(){
   +function check_removed_change_file() {
        pr_id=$1
        module=$2
        owner='apache'
   @@ -55,26 +52,25 @@
        file_nums=${#res[@]}
        is_code_change_flag=false
        module_file=0
   -    for file in ${res[@]}
   -    do
   -	#echo "$file"
   -	file_dir=$(echo $file|cut -d '/' -f 1)
   -        file_type=$(echo $file|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
   -	#if [[  "check$file_dir" == "check${module}" &&  ($file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js') ]];then
   -	if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]];then
   -	    echo "code has changed, ${file} is deleted"
   -	    is_code_change_flag=true
   -	fi
   -	if [[ "check$file_dir" == "check${module}" ]];then
   +    for file in ${res[@]}; do
   +        #echo "$file"
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        file_type=$(echo $file | rev | cut -d / -f 1 | cut -d '.' -f 1 | rev)
   +        #if [[  "check$file_dir" == "check${module}" &&  ($file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js') ]];then
   +        if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]]; then
   +            echo "code has changed, ${file} is deleted"
   +            is_code_change_flag=true
   +        fi
   +        if [[ "check$file_dir" == "check${module}" ]]; then
                let module_file+=1
   -	fi
   +        fi
        done
    
   -    if [[ "${is_code_change_flag}" == "false" ]];then
   -	echo "NO CODE FILE DELETED, PASSED!"
   +    if [[ "${is_code_change_flag}" == "false" ]]; then
   +        echo "NO CODE FILE DELETED, PASSED!"
            return 0
        else
   -	echo "CODE FILE BE DELETED"
   +        echo "CODE FILE BE DELETED"
            return 2
        fi
    
   @@ -95,20 +91,18 @@
    
        doc_num=0
        doc_sql_manual_num=0
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on docs/fs_brokers or not
   -	echo "$file"
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -	if [[ $file_dir == "docs" ]];then
   +        echo "$file"
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "docs" ]]; then
                let doc_num+=1
   -	fi
   -        if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]];then
   +        fi
   +        if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]]; then
                let doc_sql_manual_num+=1
                continue
            fi
    
   -
            #check change file is md/txt/doc file
            #file_type=$(echo $file|cut -d '.' -f 2)
            #if [[ $file_type == "md" || $file_type == "txt" || $file_type == "doc" ]];then
   @@ -120,7 +114,7 @@
        echo "doc_num: $doc_num"
        echo "file_nums: $file_nums"
        echo "doc_sql_manual_num: $doc_sql_manual_num"
   -    if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]];then
   +    if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]]; then
            echo "JUST MODIFY DOCUMENT, NO COED CHSNGED, PASSED!"
            return 0
        else
   @@ -143,17 +137,16 @@
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED BE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            echo "$file"
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
   -	fi
   +        fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY BE CODE, NO NEED RUN FE UT, PASSED!"
            return 0
        else
   @@ -176,17 +169,16 @@
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED FE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            echo "$file"
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY FE CODE, NO NEED RUN BE UT, PASSED!"
            return 0
        else
   @@ -197,42 +189,49 @@
    
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in
   +    if [ $# ] >0; then
   +        case "$1" in
            --is_modify_only_invoved_be)
   -	    check_removed_change_file $2 "be"
   -	    check_1=$?
   -	    check_all_change_files_is_under_be $2
   -	    check_2=$?
   -	    echo ${check_1}
   -	    echo ${check_2}
   -	    res=`expr $check_1 \* $check_2`
   -	    exit $res
   -	    shift ;;
   +            check_removed_change_file $2 "be"
   +            check_1=$?
   +            check_all_change_files_is_under_be $2
   +            check_2=$?
   +            echo ${check_1}
   +            echo ${check_2}
   +            res=$(expr $check_1 \* $check_2)
   +            exit $res
   +            shift
   +            ;;
            --is_modify_only_invoved_fe)
   -	    check_removed_change_file $2 "fe"
   -	    check_1=$?
   -	    check_all_change_files_is_under_fe $2
   -	    check_2=$?
   -            res=`expr $check_1 \* $check_2`
   -	    echo ${check_1}
   -	    echo ${check_2}
   -	    exit $res
   -	    shift ;;
   -	--is_modify_only_invoved_doc)
   -	    check_removed_change_file $2 "docs"
   -	    check_1=$?
   -	    check_all_change_files_is_under_doc $2
   -	    check_2=$?
   -            res=`expr $check_1 + $check_2`
   -	    echo ${check_1}
   +            check_removed_change_file $2 "fe"
   +            check_1=$?
   +            check_all_change_files_is_under_fe $2
   +            check_2=$?
   +            res=$(expr $check_1 \* $check_2)
   +            echo ${check_1}
                echo ${check_2}
   -	    exit $res
   -	    shift ;;
   -        *) echo "ERROR"; usage; exit 1 ;;
   -    esac
   +            exit $res
   +            shift
   +            ;;
   +        --is_modify_only_invoved_doc)
   +            check_removed_change_file $2 "docs"
   +            check_1=$?
   +            check_all_change_files_is_under_doc $2
   +            check_2=$?
   +            res=$(expr $check_1 + $check_2)
   +            echo ${check_1}
   +            echo ${check_2}
   +            exit $res
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            usage
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/common/clean_disk.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/clean_disk.sh
   @@ -3,7 +3,7 @@
    df -h
    existsTime=720
    #delete files created 20 hours ago
   -echo `date "+%Y-%m-%d %H:%M:%S"` "start to clear oudate file!"
   +echo $(date "+%Y-%m-%d %H:%M:%S") "start to clear oudate file!"
    cd /home/work/teamcity/TeamCity/piplineWork/Compile/
    find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
    cd -
   teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh:43:1: reached EOF without closing quote "
   --- teamcity/doris/benchmark/clickbench/common/teamcity_api.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/teamcity_api.sh
   @@ -139,23 +139,55 @@
    }
    COMMENT
    
   -
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in 
   -        --cancel_running_build) build_id=$2; cancel_running_build $build_id; shift ;;
   -        --cancel_pending_build) build_id=$2; cancel_pending_build $build_id; shift ;;
   -        --show_build_state) build_id=$2; res=$(show_build_state $build_id); echo $res; shift ;;
   -        --show_build_status) build_id=$2; res=$(show_build_status $build_id); echo $res; shift ;;
   -        --show_latest_builds) get_latest_builds; shift ;;
   -        --show_queued_builds) get_queued_builds; shift ;;
   -        --get_all_builds_of_pr_id) get_all_builds $2; shift ;;
   -	--help) usage; shift ;;
   -        *) echo "ERROR"; exit 1 ;;
   -    esac
   +    if [ $# ] >0; then
   +        case "$1" in
   +        --cancel_running_build)
   +            build_id=$2
   +            cancel_running_build $build_id
   +            shift
   +            ;;
   +        --cancel_pending_build)
   +            build_id=$2
   +            cancel_pending_build $build_id
   +            shift
   +            ;;
   +        --show_build_state)
   +            build_id=$2
   +            res=$(show_build_state $build_id)
   +            echo $res
   +            shift
   +            ;;
   +        --show_build_status)
   +            build_id=$2
   +            res=$(show_build_status $build_id)
   +            echo $res
   +            shift
   +            ;;
   +        --show_latest_builds)
   +            get_latest_builds
   +            shift
   +            ;;
   +        --show_queued_builds)
   +            get_queued_builds
   +            shift
   +            ;;
   +        --get_all_builds_of_pr_id)
   +            get_all_builds $2
   +            shift
   +            ;;
   +        --help)
   +            usage
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/common/teamcity_common.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/teamcity_common.sh
   @@ -11,7 +11,7 @@
    JSON_HEADER="--header \"Accept: application/json\""
    
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
         --cancel_running_build build_id    cancel a specific running build
   @@ -32,21 +32,21 @@
        $0 --show_queued_builds             show all queued builds
        $0 --get_all_builds_of_pr_id 9151   get all 9151 builds
      "
   -  exit 1
   +    exit 1
    }
    
    cancel_running_build() {
        build_id=$1
        state=$(show_build_state $build_id)
   -    if [[ $state == "running" ]];then
   +    if [[ $state == "running" ]]; then
            #curl --header "Authorization: Bearer eyJ0eXAiOiAiVENWMiJ9.bW1DcHJpRWNCSktnREhLaHd5Y1lndmpycnJ3.NmEwM2E3YTEtMTVmYy00NGU0LWI1OTAtMzU3MzljODE0Njdk" http://43.129.232.36:8111/app/rest/builds/id:333 -X POST -H 'Content-Type: application/json' -d '{ "buildCancelRequest": {       "comment": "Already running builds will be stopped.",      "readdIntoQueue": "false"    }  }'
            cmd="/app/rest/builds/id:$build_id"
            cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
            url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
            res=$(eval $eval)
   -        check=$(echo $res |grep status="UNKNOWN")
   -        if [[ -z $check ]];then
   -           echo "cancel fail!"
   +        check=$(echo $res | grep status="UNKNOWN")
   +        if [[ -z $check ]]; then
   +            echo "cancel fail!"
            fi
        fi
    
   @@ -55,15 +55,15 @@
    cancel_pending_build() {
        build_id=$1
        state=$(show_build_state $build_id)
   -    if [[ $state == "queued" ]];then
   +    if [[ $state == "queued" ]]; then
            cmd="app/rest/buildQueue/id:$build_id"
            cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
            url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
            #echo $url
            res=$(eval $eval)
   -        check=$(echo $res |grep status="UNKNOWN")
   -        if [[ -z $check ]];then
   -           echo "cancel fail!"
   +        check=$(echo $res | grep status="UNKNOWN")
   +        if [[ -z $check ]]; then
   +            echo "cancel fail!"
            fi
        fi
    }
   @@ -73,15 +73,15 @@
        cmd="app/rest/builds?locator=id:$build_id"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   -    
   +    res=$(eval $url)
   +
        #check build exist or not
   -    check=$(echo $res|grep "<builds count=\"1\"")
   +    check=$(echo $res | grep "<builds count=\"1\"")
        if [[ -z $check ]]; then
            return
        fi
        #get state
   -    state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
   +    state=$(echo $res | awk -F ' ' '{print $9" "$10" "$11}' | awk -F "state=" '{print $2}' | cut -d ' ' -f 1 | sed 's/\"//g')
        #only 2 state: queued and finished
        echo $state
    }
   @@ -91,9 +91,9 @@
        cmd="app/rest/builds?locator=id:$build_id"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   +    res=$(eval $url)
        #check build exist or not
   -    check1=$(echo $res|grep "<builds count=\"1\"")
   +    check1=$(echo $res | grep "<builds count=\"1\"")
        if [[ -z $check1 ]]; then
            return
        fi
   @@ -102,8 +102,8 @@
        #if [[ -z $check ]]; then
        #    return
        #fi
   -    state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
   -    #only 2 state: 
   +    state=$(echo $res | awk -F ' ' '{print $9" "$10" "$11}' | awk -F "status=" '{print $2}' | cut -d ' ' -f 1 | sed 's/\"//g')
   +    #only 2 state:
        echo $state
    }
    
   @@ -111,7 +111,7 @@
        branch=$1
        cmd="app/rest/builds?locator=branch:$branch"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
   -    res=`eval $url`
   +    res=$(eval $url)
    }
    
    get_latest_builds() {
   @@ -125,14 +125,12 @@
        cmd="app/rest/buildQueue"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $JSON_HEADER $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   +    res=$(eval $url)
        #a=$(echo $res|grep -oP 'build id=.*'|head -1)
   -    
   -    
   +
        #a=$res
        #while [[ "check"$a != "check" ]]
        #do
        #    a=$(echo $a|awk -F 'build id="' '{print $2}')
        #done
    }
   -
   --- teamcity/doris/benchmark/clickbench/common/test.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/test.sh
   @@ -3,33 +3,29 @@
    repo=doris
    GITHUB_TOKEN=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
    
   -function get_all_change_files(){
   +function get_all_change_files() {
        pr_id=$1
        files=()
    
        page=1
        per_page=100
   -    while [ 1 -eq 1 ]
   -    do
   -	#echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   -	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   +    while [ 1 -eq 1 ]; do
   +        #echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   +        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page | jq -r '.[]|select(.status = "removed")| .filename'))
            res_len=${#res[@]}
   -        if [ ${res_len} -ne 0 ];then
   -	    let page+=1
   +        if [ ${res_len} -ne 0 ]; then
   +            let page+=1
                #files="${res[@]}""$files"
   -	    files=(${res[@]} ${files[*]})
   +            files=(${res[@]} ${files[*]})
            else
                break
            fi
   -	echo 
   +        echo
        done
        echo "${files[@]}"
    }
    
   -
    out=($(get_all_change_files 11154))
    
   -
   -
    echo "=================="
    echo "${out[@]}"
   --- teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh
   @@ -3,9 +3,8 @@
    #res=(`git diff --name-only HEAD~ HEAD`)
    #file_nums=${#res[@]}
    
   -
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
    
   @@ -14,24 +13,22 @@
        $0 --is_modify_only_invoved_fe pr_id          if pr changed code only invoved fe doc, fs_brocker, return 0; else return 2
        $0 --is_modify_only_invoved_doc pr_id         if pr changed code only invoved doc, fs_brocker, return 0; else return 2
      "
   -  exit 1
   +    exit 1
    }
    
   -
    function check_all_change_files_is_under_doc() {
    
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on docs/fs_brokers or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
   @@ -43,7 +40,7 @@
            #fi
        done
    
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY DOCUMENT, NO COED CHSNGED, PASSED!"
            exit 0
        else
   @@ -57,21 +54,20 @@
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED BE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
   -	fi
   +        fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY BE CODE, NO NEED RUN FE UT, PASSED!"
            exit 0
        else
   @@ -85,21 +81,20 @@
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED FE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY FE CODE, NO NEED RUN BE UT, PASSED!"
            exit 0
        else
   @@ -110,15 +105,28 @@
    
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in
   -        --is_modify_only_invoved_be) check_all_change_files_is_under_be $2; shift ;;
   -        --is_modify_only_invoved_fe) check_all_change_files_is_under_fe $2; shift ;;
   -	--is_modify_only_doc) check_all_change_files_is_under_doc $2; shift ;;
   -        *) echo "ERROR"; usage; exit 1 ;;
   -    esac
   +    if [ $# ] >0; then
   +        case "$1" in
   +        --is_modify_only_invoved_be)
   +            check_all_change_files_is_under_be $2
   +            shift
   +            ;;
   +        --is_modify_only_invoved_fe)
   +            check_all_change_files_is_under_fe $2
   +            shift
   +            ;;
   +        --is_modify_only_doc)
   +            check_all_change_files_is_under_doc $2
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            usage
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/prepare.sh.orig
   +++ teamcity/doris/benchmark/clickbench/prepare.sh
   @@ -22,6 +22,3 @@
    fi
    qa_home="${pipeline_home}/selectdb-qa"
    cd "${qa_home}" && git stash && git checkout main && git pull && cd -
   -
   -
   -
   ----------
   
   You can reformat the above files to meet shfmt's requirements by typing:
   
     shfmt  -w filename
   
   
   ```
   </details>
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] hello-stephen commented on pull request #13259: test benchmark pipeline

Posted by GitBox <gi...@apache.org>.
hello-stephen commented on PR #13259:
URL: https://github.com/apache/doris/pull/13259#issuecomment-1280411911

   TeamCity


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] hello-stephen commented on pull request #13259: test benchmark pipeline

Posted by GitBox <gi...@apache.org>.
hello-stephen commented on PR #13259:
URL: https://github.com/apache/doris/pull/13259#issuecomment-1280417153

   $comment_body


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] github-actions[bot] commented on pull request #13259: test benchmark pipeline

Posted by GitBox <gi...@apache.org>.
github-actions[bot] commented on PR #13259:
URL: https://github.com/apache/doris/pull/13259#issuecomment-1301601963

   #### `sh-checker report`
   
   To get the full details, please check in the [job]("https://github.com/apache/doris/actions/runs/3382786622") output.
   
   <details>
   <summary>shellcheck errors</summary>
   
   ```
   
   'shellcheck ' returned error 1 finding the following syntactical issues:
   
   ----------
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 11:
   check=$(lsof -i:$port|awk '{print $2}'|wc -l)
                   ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   check=$(lsof -i:"$port"|awk '{print $2}'|wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 12:
   if [ "check$check" != "check0" ];then
      ^---------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
              ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   if [[ "check${check}" != "check0" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 13:
       if [ "check"${case_level} == "check" ];then
          ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                   ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       if [[ "check""${case_level}" == "check" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 14:
           check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep deleted||wc -l)
                            ^-- SC2046 (warning): Quote this to prevent word splitting.
                            ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                     ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                     ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                              ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                              ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check_res=$(pwdx $(lsof -i:"$port"|grep -v PID|awk '{print $2}')|grep $env_name|grep deleted||wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 16:
           check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep $case_level|grep deleted||wc -l)
                            ^-- SC2046 (warning): Quote this to prevent word splitting.
                            ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                     ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                     ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                              ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                              ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                             ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                             ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check_res=$(pwdx $(lsof -i:"$port"|grep -v PID|awk '{print $2}')|grep $env_name|grep $case_level|grep deleted||wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 18:
       if [ "check$check_res" != "check0" ];then
          ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                  ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ "check${check_res}" != "check0" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 19:
           be_pid=(`lsof -i:$port|grep -v PID|awk '{print $2}'`)
                   ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                   ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                            ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                            ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           be_pid=($(lsof -i:"$port"|grep -v PID|awk '{print $2}'))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 20:
           echo "Detected residual processes: ${be_pid}"
                                              ^-------^ SC2128 (warning): Expanding an array without an index only gives the first element.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 21:
           echo "kill residual processes: kill -9 ${be_pid}"
                                                  ^-------^ SC2128 (warning): Expanding an array without an index only gives the first element.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 22:
           kill -9 $be_pid
                   ^-----^ SC2128 (warning): Expanding an array without an index only gives the first element.
                   ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           kill -9 "$be_pid"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 29:
       while [ 1 -eq 1 ]
             ^---------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                 ^-^ SC2050 (warning): This expression is constant. Did you forget the $ on a variable?
   
   Did you mean: 
       while [[ 1 -eq 1 ]]
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 32:
           res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
                ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                              ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                            ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                    ^-------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^---^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files?per_page="$per_page"\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 35:
           if [ ${res_len} -ne 0 ];then
              ^------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           if [[ "${res_len}" -ne 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 36:
               let page+=1
               ^---------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 38:
               files=(${res[@]} ${files[*]})
                      ^-------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
                                ^---------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 54:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 58:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 61:
   	file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 62:
           file_type=$(echo $file|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
                            ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                            ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_type=$(echo "$file"|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 64:
   	if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]];then
                 ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                     ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                           ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ ${file_type} == "cpp" || ${file_type} == "c" || ${file_type} == "java" || ${file_type} == "py" || ${file_type} == "h" || ${file_type} == 'js' ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 68:
   	if [[ "check$file_dir" == "check${module}" ]];then
                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ "check${file_dir}" == "check${module}" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 69:
               let module_file+=1
               ^----------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 89:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 98:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 101:
   	echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 102:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 103:
   	if [[ $file_dir == "docs" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ ${file_dir} == "docs" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 104:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 106:
           if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]];then
                  ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                              ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ "${file}" =~ "docs/zh-CN/docs/sql-manual/" || "${file}" =~ "docs/en/docs/sql-manual/" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 107:
               let doc_sql_manual_num+=1
               ^-----------------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 120:
       echo "doc_num: $doc_num"
                      ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "doc_num: ${doc_num}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 121:
       echo "file_nums: $file_nums"
                        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "file_nums: ${file_nums}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 122:
       echo "doc_sql_manual_num: $doc_sql_manual_num"
                                 ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "doc_sql_manual_num: ${doc_sql_manual_num}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 123:
       if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} && ${doc_sql_manual_num} -eq 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 138:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 146:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 148:
           echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 150:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 151:
           if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "be" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 152:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 156:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 171:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 179:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 181:
           echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 183:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 184:
           if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "fe" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 185:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 189:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 200:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 203:
   	    check_removed_change_file $2 "be"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "be"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 205:
   	    check_all_change_files_is_under_be $2
                                                  ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_be "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 207:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 208:
   	    echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 209:
   	    res=`expr $check_1 \* $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    res=$(expr "$check_1" \* $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 210:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 213:
   	    check_removed_change_file $2 "fe"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "fe"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 215:
   	    check_all_change_files_is_under_fe $2
                                                  ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_fe "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 217:
               res=`expr $check_1 \* $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
               res=$(expr "$check_1" \* $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 218:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 219:
   	    echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 220:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 223:
   	    check_removed_change_file $2 "docs"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "docs"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 225:
   	    check_all_change_files_is_under_doc $2
                                                   ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_doc "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 227:
               res=`expr $check_1 + $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                    ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                    ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
               res=$(expr "$check_1" + $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 228:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 229:
               echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
               echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 230:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 238:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 6:
   echo `date "+%Y-%m-%d %H:%M:%S"` "start to clear oudate file!"
        ^-------------------------^ SC2046 (warning): Quote this to prevent word splitting.
        ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
   
   Did you mean: 
   echo $(date "+%Y-%m-%d %H:%M:%S") "start to clear oudate file!"
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 7:
   cd /home/work/teamcity/TeamCity/piplineWork/Compile/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/Compile/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 8:
   find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                         ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 9:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   ^--^ SC2103 (info): Use a ( subshell ) to avoid having to cd back.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 10:
   cd /home/work/teamcity/TeamCity/piplineWork/feUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/feUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 11:
   find /home/work/teamcity/TeamCity/piplineWork/feUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/feUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 12:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 13:
   cd /home/work/teamcity/TeamCity/piplineWork/beUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/beUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 14:
   find /home/work/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 15:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 16:
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 17:
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                         ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 18:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 19:
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 20:
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_compile.sh line 3:
   id=$(echo $RANDOM)
      ^-------------^ SC2116 (style): Useless echo? Instead of 'cmd $(echo foo)', just use 'cmd foo'.
             ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
             ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   id=$(echo "$RANDOM")
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_compile.sh line 5:
   docker run -i --rm --name doris-compile-$id -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v $work_path:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
                                           ^-^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                           ^-^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                                    ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   docker run -i --rm --name doris-compile-"$id" -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v $work_path:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 40:
       docker_name="doris-compile-"$(echo $RANDOM)
                                  ^-- SC1078 (warning): Did you forget to close this double quoted string?
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 42:
       cmd="docker run -i --rm --name doris-compile-$id -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v %system.teamcity.build.workingDir%:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
           ^-- SC1079 (info): This is actually an end quote, but due to next char it looks suspect.
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 43:
   "
   ^-- SC1073 (error): Couldn't parse this double quoted string. Fix to allow more checks.
   ^-- SC1009 (info): The mentioned syntax error was in this simple command.
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 45:
   
   ^-- SC1072 (error): Expected end of double quoted string. Fix any mentioned problems and try again.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 5:
   <<'COMMENT'
   ^---------^ SC2188 (warning): This redirection doesn't have a command. Move to its command (or use 'true' as no-op).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 145:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 147:
           --cancel_running_build) build_id=$2; cancel_running_build $build_id; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --cancel_running_build) build_id=$2; cancel_running_build "$build_id"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 148:
           --cancel_pending_build) build_id=$2; cancel_pending_build $build_id; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --cancel_pending_build) build_id=$2; cancel_pending_build "$build_id"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 149:
           --show_build_state) build_id=$2; res=$(show_build_state $build_id); echo $res; shift ;;
                                                                   ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                   ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --show_build_state) build_id=$2; res=$(show_build_state "$build_id"); echo $res; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 150:
           --show_build_status) build_id=$2; res=$(show_build_status $build_id); echo $res; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                      ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                      ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --show_build_status) build_id=$2; res=$(show_build_status "$build_id"); echo $res; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 153:
           --get_all_builds_of_pr_id) get_all_builds $2; shift ;;
                                                     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --get_all_builds_of_pr_id) get_all_builds "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 161:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 4:
   zcp_TOKEN="eyJ0eXAiOiAiVENWMiJ9.bW1DcHJpRWNCSktnREhLaHd5Y1lndmpycnJ3.NmEwM2E3YTEtMTVmYy00NGU0LWI1OTAtMzU3MzljODE0Njdk"
   ^-------^ SC2034 (warning): zcp_TOKEN appears unused. Verify use (or export if used externally).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 7:
   zcp_TEAMCITY_SERVER="http://43.129.232.36:8111"
   ^-----------------^ SC2034 (warning): zcp_TEAMCITY_SERVER appears unused. Verify use (or export if used externally).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 40:
       state=$(show_build_state $build_id)
                                ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(show_build_state "$build_id")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 41:
       if [[ $state == "running" ]];then
             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${state} == "running" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 43:
           cmd="/app/rest/builds/id:$build_id"
                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd="/app/rest/builds/id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 44:
           cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
               ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd=${cmd}" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 45:
           url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                        ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                  ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                 ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                          ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                           ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 46:
           res=$(eval $eval)
                      ^---^ SC2154 (warning): eval is referenced but not assigned (for output from commands, use "$(eval ...)" ).
                      ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=$(eval "$eval")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 47:
           check=$(echo $res |grep status="UNKNOWN")
                        ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                        ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check=$(echo "$res" |grep status="UNKNOWN")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 48:
           if [[ -z $check ]];then
                    ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ -z ${check} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 57:
       state=$(show_build_state $build_id)
                                ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(show_build_state "$build_id")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 58:
       if [[ $state == "queued" ]];then
             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${state} == "queued" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 59:
           cmd="app/rest/buildQueue/id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd="app/rest/buildQueue/id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 60:
           cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
               ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd=${cmd}" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 61:
           url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                        ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                  ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                 ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                          ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                           ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 63:
           res=$(eval $eval)
                      ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=$(eval "$eval")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 64:
           check=$(echo $res |grep status="UNKNOWN")
                        ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                        ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check=$(echo "$res" |grep status="UNKNOWN")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 65:
           if [[ -z $check ]];then
                    ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ -z ${check} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 73:
       cmd="app/rest/builds?locator=id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 74:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 76:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 79:
       check=$(echo $res|grep "<builds count=\"1\"")
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       check=$(echo "$res"|grep "<builds count=\"1\"")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 80:
       if [[ -z $check ]]; then
                ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ -z ${check} ]]; then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 84:
       state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                   ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(echo "$res" |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g')
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 86:
       echo $state
            ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "$state"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 91:
       cmd="app/rest/builds?locator=id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 92:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 94:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 96:
       check1=$(echo $res|grep "<builds count=\"1\"")
                     ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                     ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       check1=$(echo "$res"|grep "<builds count=\"1\"")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 97:
       if [[ -z $check1 ]]; then
                ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ -z ${check1} ]]; then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 105:
       state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                   ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(echo "$res" |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g')
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 107:
       echo $state
            ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "$state"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 112:
       cmd="app/rest/builds?locator=branch:$branch"
                                           ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=branch:${branch}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 113:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 114:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 119:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                           ^-^ SC2089 (warning): Quotes/backslashes will be treated literally. Use an array.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 121:
       res=eval $url
       ^-----------^ SC2209 (warning): Use var=$(command) to assign output (or quote to assign string).
                ^--^ SC2090 (warning): Quotes/backslashes in this variable will not be respected.
                ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=eval ${url}
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 126:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $JSON_HEADER $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                   ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${JSON_HEADER} ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 128:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 12:
       while [ 1 -eq 1 ]
             ^---------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                 ^-^ SC2050 (warning): This expression is constant. Did you forget the $ on a variable?
   
   Did you mean: 
       while [[ 1 -eq 1 ]]
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 15:
   	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
                ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                              ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                            ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                    ^-------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^---^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files?per_page="$per_page"\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 17:
           if [ ${res_len} -ne 0 ];then
              ^------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           if [[ "${res_len}" -ne 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 18:
   	    let page+=1
               ^---------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 20:
   	    files=(${res[@]} ${files[*]})
                      ^-------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
                                ^---------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 30:
   out=($(get_all_change_files 11154))
        ^---------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check.sh line 3:
   <<'COMMENT'
   ^---------^ SC2188 (warning): This redirection doesn't have a command. Move to its command (or use 'true' as no-op).
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 26:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 30:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 33:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 34:
           if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 35:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 46:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 60:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 65:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 68:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 69:
           if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "be" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 70:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 74:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 88:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 93:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 96:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 97:
           if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "fe" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 98:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 102:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 113:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 115:
           --is_modify_only_invoved_be) check_all_change_files_is_under_be $2; shift ;;
                                                                           ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --is_modify_only_invoved_be) check_all_change_files_is_under_be "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 116:
           --is_modify_only_invoved_fe) check_all_change_files_is_under_fe $2; shift ;;
                                                                           ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --is_modify_only_invoved_fe) check_all_change_files_is_under_fe "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 117:
   	--is_modify_only_doc) check_all_change_files_is_under_doc $2; shift ;;
                                                                     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	--is_modify_only_doc) check_all_change_files_is_under_doc "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 124:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   For more information:
     https://www.shellcheck.net/wiki/SC2068 -- Double quote array expansions to ...
     https://www.shellcheck.net/wiki/SC2071 -- > is for string comparisons. Use ...
     https://www.shellcheck.net/wiki/SC1078 -- Did you forget to close this doub...
   ----------
   
   You can address the above issues in one of three ways:
   1. Manually correct the issue in the offending shell script;
   2. Disable specific issues by adding the comment:
     # shellcheck disable=NNNN
   above the line that contains the issue, where NNNN is the error code;
   3. Add '-e NNNN' to the SHELLCHECK_OPTS setting in your .yml action file.
   
   
   
   ```
   </details>
   
   <details>
   <summary>shfmt errors</summary>
   
   ```
   
   'shfmt ' returned error 1 finding the following formatting issues:
   
   ----------
   --- teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh
   @@ -8,23 +8,22 @@
    echo "===================================="
    echo "START TO DETECT RESIDUAL PROCESSES!"
    
   -check=$(lsof -i:$port|awk '{print $2}'|wc -l)
   -if [ "check$check" != "check0" ];then
   -    if [ "check"${case_level} == "check" ];then
   -        check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep deleted||wc -l)
   +check=$(lsof -i:$port | awk '{print $2}' | wc -l)
   +if [ "check$check" != "check0" ]; then
   +    if [ "check"${case_level} == "check" ]; then
   +        check_res=$(pwdx $(lsof -i:$port | grep -v PID | awk '{print $2}') | grep $env_name | grep deleted || wc -l)
        else
   -        check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep $case_level|grep deleted||wc -l)
   +        check_res=$(pwdx $(lsof -i:$port | grep -v PID | awk '{print $2}') | grep $env_name | grep $case_level | grep deleted || wc -l)
        fi
   -    if [ "check$check_res" != "check0" ];then
   -        be_pid=(`lsof -i:$port|grep -v PID|awk '{print $2}'`)
   +    if [ "check$check_res" != "check0" ]; then
   +        be_pid=($(lsof -i:$port | grep -v PID | awk '{print $2}'))
            echo "Detected residual processes: ${be_pid}"
            echo "kill residual processes: kill -9 ${be_pid}"
            kill -9 $be_pid
        fi
    else
   -        echo "No residual processes"
   +    echo "No residual processes"
    fi
    
   -
    echo "FINISH DETECT RESIDUAL PROCESSES!"
    echo "==================================="
   --- teamcity/doris/benchmark/clickbench/common/check_change_file.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/check_change_file.sh
   @@ -7,7 +7,7 @@
    GITHUB_TOKEN=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
    
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
    
   @@ -16,23 +16,21 @@
        $0 --is_modify_only_invoved_fe pr_id          if pr changed code only invoved fe doc, fs_brocker, return 0; else return 2
        $0 --is_modify_only_invoved_doc pr_id         if pr changed code only invoved doc, fs_brocker, return 0; else return 2
      "
   -  exit 1
   +    exit 1
    }
    
   -
   -function get_all_change_files(){
   +function get_all_change_files() {
        pr_id=$1
        files=()
    
        page=1
        per_page=100
   -    while [ 1 -eq 1 ]
   -    do
   +    while [ 1 -eq 1 ]; do
            #echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   -        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   +        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page | jq -r '.[]|select(.status = "removed")| .filename'))
            res_len=${#res[@]}
            #echo "================"$res_len
   -        if [ ${res_len} -ne 0 ];then
   +        if [ ${res_len} -ne 0 ]; then
                let page+=1
                #files="${res[@]}""$files"
                files=(${res[@]} ${files[*]})
   @@ -44,8 +42,7 @@
        echo "${files[@]}"
    }
    
   -
   -function check_removed_change_file(){
   +function check_removed_change_file() {
        pr_id=$1
        module=$2
        owner='apache'
   @@ -55,26 +52,25 @@
        file_nums=${#res[@]}
        is_code_change_flag=false
        module_file=0
   -    for file in ${res[@]}
   -    do
   -	#echo "$file"
   -	file_dir=$(echo $file|cut -d '/' -f 1)
   -        file_type=$(echo $file|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
   -	#if [[  "check$file_dir" == "check${module}" &&  ($file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js') ]];then
   -	if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]];then
   -	    echo "code has changed, ${file} is deleted"
   -	    is_code_change_flag=true
   -	fi
   -	if [[ "check$file_dir" == "check${module}" ]];then
   +    for file in ${res[@]}; do
   +        #echo "$file"
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        file_type=$(echo $file | rev | cut -d / -f 1 | cut -d '.' -f 1 | rev)
   +        #if [[  "check$file_dir" == "check${module}" &&  ($file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js') ]];then
   +        if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]]; then
   +            echo "code has changed, ${file} is deleted"
   +            is_code_change_flag=true
   +        fi
   +        if [[ "check$file_dir" == "check${module}" ]]; then
                let module_file+=1
   -	fi
   +        fi
        done
    
   -    if [[ "${is_code_change_flag}" == "false" ]];then
   -	echo "NO CODE FILE DELETED, PASSED!"
   +    if [[ "${is_code_change_flag}" == "false" ]]; then
   +        echo "NO CODE FILE DELETED, PASSED!"
            return 0
        else
   -	echo "CODE FILE BE DELETED"
   +        echo "CODE FILE BE DELETED"
            return 2
        fi
    
   @@ -95,20 +91,18 @@
    
        doc_num=0
        doc_sql_manual_num=0
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on docs/fs_brokers or not
   -	echo "$file"
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -	if [[ $file_dir == "docs" ]];then
   +        echo "$file"
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "docs" ]]; then
                let doc_num+=1
   -	fi
   -        if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]];then
   +        fi
   +        if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]]; then
                let doc_sql_manual_num+=1
                continue
            fi
    
   -
            #check change file is md/txt/doc file
            #file_type=$(echo $file|cut -d '.' -f 2)
            #if [[ $file_type == "md" || $file_type == "txt" || $file_type == "doc" ]];then
   @@ -120,7 +114,7 @@
        echo "doc_num: $doc_num"
        echo "file_nums: $file_nums"
        echo "doc_sql_manual_num: $doc_sql_manual_num"
   -    if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]];then
   +    if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]]; then
            echo "JUST MODIFY DOCUMENT, NO COED CHSNGED, PASSED!"
            return 0
        else
   @@ -143,17 +137,16 @@
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED BE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            echo "$file"
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
   -	fi
   +        fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY BE CODE, NO NEED RUN FE UT, PASSED!"
            return 0
        else
   @@ -176,17 +169,16 @@
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED FE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            echo "$file"
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY FE CODE, NO NEED RUN BE UT, PASSED!"
            return 0
        else
   @@ -197,42 +189,49 @@
    
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in
   +    if [ $# ] >0; then
   +        case "$1" in
            --is_modify_only_invoved_be)
   -	    check_removed_change_file $2 "be"
   -	    check_1=$?
   -	    check_all_change_files_is_under_be $2
   -	    check_2=$?
   -	    echo ${check_1}
   -	    echo ${check_2}
   -	    res=`expr $check_1 \* $check_2`
   -	    exit $res
   -	    shift ;;
   +            check_removed_change_file $2 "be"
   +            check_1=$?
   +            check_all_change_files_is_under_be $2
   +            check_2=$?
   +            echo ${check_1}
   +            echo ${check_2}
   +            res=$(expr $check_1 \* $check_2)
   +            exit $res
   +            shift
   +            ;;
            --is_modify_only_invoved_fe)
   -	    check_removed_change_file $2 "fe"
   -	    check_1=$?
   -	    check_all_change_files_is_under_fe $2
   -	    check_2=$?
   -            res=`expr $check_1 \* $check_2`
   -	    echo ${check_1}
   -	    echo ${check_2}
   -	    exit $res
   -	    shift ;;
   -	--is_modify_only_invoved_doc)
   -	    check_removed_change_file $2 "docs"
   -	    check_1=$?
   -	    check_all_change_files_is_under_doc $2
   -	    check_2=$?
   -            res=`expr $check_1 + $check_2`
   -	    echo ${check_1}
   +            check_removed_change_file $2 "fe"
   +            check_1=$?
   +            check_all_change_files_is_under_fe $2
   +            check_2=$?
   +            res=$(expr $check_1 \* $check_2)
   +            echo ${check_1}
                echo ${check_2}
   -	    exit $res
   -	    shift ;;
   -        *) echo "ERROR"; usage; exit 1 ;;
   -    esac
   +            exit $res
   +            shift
   +            ;;
   +        --is_modify_only_invoved_doc)
   +            check_removed_change_file $2 "docs"
   +            check_1=$?
   +            check_all_change_files_is_under_doc $2
   +            check_2=$?
   +            res=$(expr $check_1 + $check_2)
   +            echo ${check_1}
   +            echo ${check_2}
   +            exit $res
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            usage
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/common/clean_disk.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/clean_disk.sh
   @@ -3,7 +3,7 @@
    df -h
    existsTime=720
    #delete files created 20 hours ago
   -echo `date "+%Y-%m-%d %H:%M:%S"` "start to clear oudate file!"
   +echo $(date "+%Y-%m-%d %H:%M:%S") "start to clear oudate file!"
    cd /home/work/teamcity/TeamCity/piplineWork/Compile/
    find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
    cd -
   teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh:43:1: reached EOF without closing quote "
   --- teamcity/doris/benchmark/clickbench/common/teamcity_api.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/teamcity_api.sh
   @@ -139,23 +139,55 @@
    }
    COMMENT
    
   -
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in 
   -        --cancel_running_build) build_id=$2; cancel_running_build $build_id; shift ;;
   -        --cancel_pending_build) build_id=$2; cancel_pending_build $build_id; shift ;;
   -        --show_build_state) build_id=$2; res=$(show_build_state $build_id); echo $res; shift ;;
   -        --show_build_status) build_id=$2; res=$(show_build_status $build_id); echo $res; shift ;;
   -        --show_latest_builds) get_latest_builds; shift ;;
   -        --show_queued_builds) get_queued_builds; shift ;;
   -        --get_all_builds_of_pr_id) get_all_builds $2; shift ;;
   -	--help) usage; shift ;;
   -        *) echo "ERROR"; exit 1 ;;
   -    esac
   +    if [ $# ] >0; then
   +        case "$1" in
   +        --cancel_running_build)
   +            build_id=$2
   +            cancel_running_build $build_id
   +            shift
   +            ;;
   +        --cancel_pending_build)
   +            build_id=$2
   +            cancel_pending_build $build_id
   +            shift
   +            ;;
   +        --show_build_state)
   +            build_id=$2
   +            res=$(show_build_state $build_id)
   +            echo $res
   +            shift
   +            ;;
   +        --show_build_status)
   +            build_id=$2
   +            res=$(show_build_status $build_id)
   +            echo $res
   +            shift
   +            ;;
   +        --show_latest_builds)
   +            get_latest_builds
   +            shift
   +            ;;
   +        --show_queued_builds)
   +            get_queued_builds
   +            shift
   +            ;;
   +        --get_all_builds_of_pr_id)
   +            get_all_builds $2
   +            shift
   +            ;;
   +        --help)
   +            usage
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/common/teamcity_common.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/teamcity_common.sh
   @@ -11,7 +11,7 @@
    JSON_HEADER="--header \"Accept: application/json\""
    
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
         --cancel_running_build build_id    cancel a specific running build
   @@ -32,21 +32,21 @@
        $0 --show_queued_builds             show all queued builds
        $0 --get_all_builds_of_pr_id 9151   get all 9151 builds
      "
   -  exit 1
   +    exit 1
    }
    
    cancel_running_build() {
        build_id=$1
        state=$(show_build_state $build_id)
   -    if [[ $state == "running" ]];then
   +    if [[ $state == "running" ]]; then
            #curl --header "Authorization: Bearer eyJ0eXAiOiAiVENWMiJ9.bW1DcHJpRWNCSktnREhLaHd5Y1lndmpycnJ3.NmEwM2E3YTEtMTVmYy00NGU0LWI1OTAtMzU3MzljODE0Njdk" http://43.129.232.36:8111/app/rest/builds/id:333 -X POST -H 'Content-Type: application/json' -d '{ "buildCancelRequest": {       "comment": "Already running builds will be stopped.",      "readdIntoQueue": "false"    }  }'
            cmd="/app/rest/builds/id:$build_id"
            cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
            url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
            res=$(eval $eval)
   -        check=$(echo $res |grep status="UNKNOWN")
   -        if [[ -z $check ]];then
   -           echo "cancel fail!"
   +        check=$(echo $res | grep status="UNKNOWN")
   +        if [[ -z $check ]]; then
   +            echo "cancel fail!"
            fi
        fi
    
   @@ -55,15 +55,15 @@
    cancel_pending_build() {
        build_id=$1
        state=$(show_build_state $build_id)
   -    if [[ $state == "queued" ]];then
   +    if [[ $state == "queued" ]]; then
            cmd="app/rest/buildQueue/id:$build_id"
            cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
            url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
            #echo $url
            res=$(eval $eval)
   -        check=$(echo $res |grep status="UNKNOWN")
   -        if [[ -z $check ]];then
   -           echo "cancel fail!"
   +        check=$(echo $res | grep status="UNKNOWN")
   +        if [[ -z $check ]]; then
   +            echo "cancel fail!"
            fi
        fi
    }
   @@ -73,15 +73,15 @@
        cmd="app/rest/builds?locator=id:$build_id"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   -    
   +    res=$(eval $url)
   +
        #check build exist or not
   -    check=$(echo $res|grep "<builds count=\"1\"")
   +    check=$(echo $res | grep "<builds count=\"1\"")
        if [[ -z $check ]]; then
            return
        fi
        #get state
   -    state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
   +    state=$(echo $res | awk -F ' ' '{print $9" "$10" "$11}' | awk -F "state=" '{print $2}' | cut -d ' ' -f 1 | sed 's/\"//g')
        #only 2 state: queued and finished
        echo $state
    }
   @@ -91,9 +91,9 @@
        cmd="app/rest/builds?locator=id:$build_id"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   +    res=$(eval $url)
        #check build exist or not
   -    check1=$(echo $res|grep "<builds count=\"1\"")
   +    check1=$(echo $res | grep "<builds count=\"1\"")
        if [[ -z $check1 ]]; then
            return
        fi
   @@ -102,8 +102,8 @@
        #if [[ -z $check ]]; then
        #    return
        #fi
   -    state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
   -    #only 2 state: 
   +    state=$(echo $res | awk -F ' ' '{print $9" "$10" "$11}' | awk -F "status=" '{print $2}' | cut -d ' ' -f 1 | sed 's/\"//g')
   +    #only 2 state:
        echo $state
    }
    
   @@ -111,7 +111,7 @@
        branch=$1
        cmd="app/rest/builds?locator=branch:$branch"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
   -    res=`eval $url`
   +    res=$(eval $url)
    }
    
    get_latest_builds() {
   @@ -125,14 +125,12 @@
        cmd="app/rest/buildQueue"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $JSON_HEADER $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   +    res=$(eval $url)
        #a=$(echo $res|grep -oP 'build id=.*'|head -1)
   -    
   -    
   +
        #a=$res
        #while [[ "check"$a != "check" ]]
        #do
        #    a=$(echo $a|awk -F 'build id="' '{print $2}')
        #done
    }
   -
   --- teamcity/doris/benchmark/clickbench/common/test.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/test.sh
   @@ -3,33 +3,29 @@
    repo=doris
    GITHUB_TOKEN=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
    
   -function get_all_change_files(){
   +function get_all_change_files() {
        pr_id=$1
        files=()
    
        page=1
        per_page=100
   -    while [ 1 -eq 1 ]
   -    do
   -	#echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   -	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   +    while [ 1 -eq 1 ]; do
   +        #echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   +        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page | jq -r '.[]|select(.status = "removed")| .filename'))
            res_len=${#res[@]}
   -        if [ ${res_len} -ne 0 ];then
   -	    let page+=1
   +        if [ ${res_len} -ne 0 ]; then
   +            let page+=1
                #files="${res[@]}""$files"
   -	    files=(${res[@]} ${files[*]})
   +            files=(${res[@]} ${files[*]})
            else
                break
            fi
   -	echo 
   +        echo
        done
        echo "${files[@]}"
    }
    
   -
    out=($(get_all_change_files 11154))
    
   -
   -
    echo "=================="
    echo "${out[@]}"
   --- teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh
   @@ -3,9 +3,8 @@
    #res=(`git diff --name-only HEAD~ HEAD`)
    #file_nums=${#res[@]}
    
   -
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
    
   @@ -14,24 +13,22 @@
        $0 --is_modify_only_invoved_fe pr_id          if pr changed code only invoved fe doc, fs_brocker, return 0; else return 2
        $0 --is_modify_only_invoved_doc pr_id         if pr changed code only invoved doc, fs_brocker, return 0; else return 2
      "
   -  exit 1
   +    exit 1
    }
    
   -
    function check_all_change_files_is_under_doc() {
    
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on docs/fs_brokers or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
   @@ -43,7 +40,7 @@
            #fi
        done
    
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY DOCUMENT, NO COED CHSNGED, PASSED!"
            exit 0
        else
   @@ -57,21 +54,20 @@
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED BE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
   -	fi
   +        fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY BE CODE, NO NEED RUN FE UT, PASSED!"
            exit 0
        else
   @@ -85,21 +81,20 @@
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED FE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY FE CODE, NO NEED RUN BE UT, PASSED!"
            exit 0
        else
   @@ -110,15 +105,28 @@
    
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in
   -        --is_modify_only_invoved_be) check_all_change_files_is_under_be $2; shift ;;
   -        --is_modify_only_invoved_fe) check_all_change_files_is_under_fe $2; shift ;;
   -	--is_modify_only_doc) check_all_change_files_is_under_doc $2; shift ;;
   -        *) echo "ERROR"; usage; exit 1 ;;
   -    esac
   +    if [ $# ] >0; then
   +        case "$1" in
   +        --is_modify_only_invoved_be)
   +            check_all_change_files_is_under_be $2
   +            shift
   +            ;;
   +        --is_modify_only_invoved_fe)
   +            check_all_change_files_is_under_fe $2
   +            shift
   +            ;;
   +        --is_modify_only_doc)
   +            check_all_change_files_is_under_doc $2
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            usage
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   ----------
   
   You can reformat the above files to meet shfmt's requirements by typing:
   
     shfmt  -w filename
   
   
   ```
   </details>
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] github-actions[bot] commented on pull request #13259: test benchmark pipeline

Posted by GitBox <gi...@apache.org>.
github-actions[bot] commented on PR #13259:
URL: https://github.com/apache/doris/pull/13259#issuecomment-1301616729

   #### `sh-checker report`
   
   To get the full details, please check in the [job]("https://github.com/apache/doris/actions/runs/3382928162") output.
   
   <details>
   <summary>shellcheck errors</summary>
   
   ```
   
   'shellcheck ' returned error 1 finding the following syntactical issues:
   
   ----------
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 11:
   check=$(lsof -i:$port|awk '{print $2}'|wc -l)
                   ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   check=$(lsof -i:"$port"|awk '{print $2}'|wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 12:
   if [ "check$check" != "check0" ];then
      ^---------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
              ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   if [[ "check${check}" != "check0" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 13:
       if [ "check"${case_level} == "check" ];then
          ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                   ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       if [[ "check""${case_level}" == "check" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 14:
           check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep deleted||wc -l)
                            ^-- SC2046 (warning): Quote this to prevent word splitting.
                            ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                     ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                     ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                              ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                              ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check_res=$(pwdx $(lsof -i:"$port"|grep -v PID|awk '{print $2}')|grep $env_name|grep deleted||wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 16:
           check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep $case_level|grep deleted||wc -l)
                            ^-- SC2046 (warning): Quote this to prevent word splitting.
                            ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                     ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                     ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                              ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                              ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                             ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                             ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check_res=$(pwdx $(lsof -i:"$port"|grep -v PID|awk '{print $2}')|grep $env_name|grep $case_level|grep deleted||wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 18:
       if [ "check$check_res" != "check0" ];then
          ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                  ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ "check${check_res}" != "check0" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 19:
           be_pid=(`lsof -i:$port|grep -v PID|awk '{print $2}'`)
                   ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                   ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                            ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                            ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           be_pid=($(lsof -i:"$port"|grep -v PID|awk '{print $2}'))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 20:
           echo "Detected residual processes: ${be_pid}"
                                              ^-------^ SC2128 (warning): Expanding an array without an index only gives the first element.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 21:
           echo "kill residual processes: kill -9 ${be_pid}"
                                                  ^-------^ SC2128 (warning): Expanding an array without an index only gives the first element.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 22:
           kill -9 $be_pid
                   ^-----^ SC2128 (warning): Expanding an array without an index only gives the first element.
                   ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           kill -9 "$be_pid"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 29:
       while [ 1 -eq 1 ]
             ^---------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                 ^-^ SC2050 (warning): This expression is constant. Did you forget the $ on a variable?
   
   Did you mean: 
       while [[ 1 -eq 1 ]]
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 32:
           res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
                ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                              ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                            ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                    ^-------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^---^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files?per_page="$per_page"\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 35:
           if [ ${res_len} -ne 0 ];then
              ^------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           if [[ "${res_len}" -ne 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 36:
               let page+=1
               ^---------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 38:
               files=(${res[@]} ${files[*]})
                      ^-------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
                                ^---------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 54:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 58:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 61:
   	file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 62:
           file_type=$(echo $file|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
                            ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                            ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_type=$(echo "$file"|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 64:
   	if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]];then
                 ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                     ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                           ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ ${file_type} == "cpp" || ${file_type} == "c" || ${file_type} == "java" || ${file_type} == "py" || ${file_type} == "h" || ${file_type} == 'js' ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 68:
   	if [[ "check$file_dir" == "check${module}" ]];then
                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ "check${file_dir}" == "check${module}" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 69:
               let module_file+=1
               ^----------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 89:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 98:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 101:
   	echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 102:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 103:
   	if [[ $file_dir == "docs" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ ${file_dir} == "docs" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 104:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 106:
           if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]];then
                  ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                              ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ "${file}" =~ "docs/zh-CN/docs/sql-manual/" || "${file}" =~ "docs/en/docs/sql-manual/" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 107:
               let doc_sql_manual_num+=1
               ^-----------------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 120:
       echo "doc_num: $doc_num"
                      ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "doc_num: ${doc_num}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 121:
       echo "file_nums: $file_nums"
                        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "file_nums: ${file_nums}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 122:
       echo "doc_sql_manual_num: $doc_sql_manual_num"
                                 ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "doc_sql_manual_num: ${doc_sql_manual_num}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 123:
       if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} && ${doc_sql_manual_num} -eq 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 138:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 146:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 148:
           echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 150:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 151:
           if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "be" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 152:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 156:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 171:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 179:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 181:
           echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 183:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 184:
           if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "fe" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 185:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 189:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 200:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 203:
   	    check_removed_change_file $2 "be"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "be"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 205:
   	    check_all_change_files_is_under_be $2
                                                  ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_be "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 207:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 208:
   	    echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 209:
   	    res=`expr $check_1 \* $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    res=$(expr "$check_1" \* $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 210:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 213:
   	    check_removed_change_file $2 "fe"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "fe"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 215:
   	    check_all_change_files_is_under_fe $2
                                                  ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_fe "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 217:
               res=`expr $check_1 \* $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
               res=$(expr "$check_1" \* $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 218:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 219:
   	    echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 220:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 223:
   	    check_removed_change_file $2 "docs"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "docs"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 225:
   	    check_all_change_files_is_under_doc $2
                                                   ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_doc "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 227:
               res=`expr $check_1 + $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                    ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                    ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
               res=$(expr "$check_1" + $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 228:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 229:
               echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
               echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 230:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 238:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 6:
   echo `date "+%Y-%m-%d %H:%M:%S"` "start to clear oudate file!"
        ^-------------------------^ SC2046 (warning): Quote this to prevent word splitting.
        ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
   
   Did you mean: 
   echo $(date "+%Y-%m-%d %H:%M:%S") "start to clear oudate file!"
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 7:
   cd /home/work/teamcity/TeamCity/piplineWork/Compile/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/Compile/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 8:
   find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                         ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 9:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   ^--^ SC2103 (info): Use a ( subshell ) to avoid having to cd back.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 10:
   cd /home/work/teamcity/TeamCity/piplineWork/feUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/feUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 11:
   find /home/work/teamcity/TeamCity/piplineWork/feUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/feUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 12:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 13:
   cd /home/work/teamcity/TeamCity/piplineWork/beUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/beUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 14:
   find /home/work/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 15:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 16:
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 17:
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                         ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 18:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 19:
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 20:
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_compile.sh line 3:
   id=$(echo $RANDOM)
      ^-------------^ SC2116 (style): Useless echo? Instead of 'cmd $(echo foo)', just use 'cmd foo'.
             ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
             ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   id=$(echo "$RANDOM")
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_compile.sh line 5:
   docker run -i --rm --name doris-compile-$id -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v $work_path:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
                                           ^-^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                           ^-^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                                    ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   docker run -i --rm --name doris-compile-"$id" -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v $work_path:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 40:
       docker_name="doris-compile-"$(echo $RANDOM)
                                  ^-- SC1078 (warning): Did you forget to close this double quoted string?
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 42:
       cmd="docker run -i --rm --name doris-compile-$id -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v %system.teamcity.build.workingDir%:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
           ^-- SC1079 (info): This is actually an end quote, but due to next char it looks suspect.
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 43:
   "
   ^-- SC1073 (error): Couldn't parse this double quoted string. Fix to allow more checks.
   ^-- SC1009 (info): The mentioned syntax error was in this simple command.
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 45:
   
   ^-- SC1072 (error): Expected end of double quoted string. Fix any mentioned problems and try again.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 5:
   <<'COMMENT'
   ^---------^ SC2188 (warning): This redirection doesn't have a command. Move to its command (or use 'true' as no-op).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 145:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 147:
           --cancel_running_build) build_id=$2; cancel_running_build $build_id; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --cancel_running_build) build_id=$2; cancel_running_build "$build_id"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 148:
           --cancel_pending_build) build_id=$2; cancel_pending_build $build_id; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --cancel_pending_build) build_id=$2; cancel_pending_build "$build_id"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 149:
           --show_build_state) build_id=$2; res=$(show_build_state $build_id); echo $res; shift ;;
                                                                   ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                   ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --show_build_state) build_id=$2; res=$(show_build_state "$build_id"); echo $res; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 150:
           --show_build_status) build_id=$2; res=$(show_build_status $build_id); echo $res; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                      ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                      ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --show_build_status) build_id=$2; res=$(show_build_status "$build_id"); echo $res; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 153:
           --get_all_builds_of_pr_id) get_all_builds $2; shift ;;
                                                     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --get_all_builds_of_pr_id) get_all_builds "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 161:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 4:
   zcp_TOKEN="eyJ0eXAiOiAiVENWMiJ9.bW1DcHJpRWNCSktnREhLaHd5Y1lndmpycnJ3.NmEwM2E3YTEtMTVmYy00NGU0LWI1OTAtMzU3MzljODE0Njdk"
   ^-------^ SC2034 (warning): zcp_TOKEN appears unused. Verify use (or export if used externally).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 7:
   zcp_TEAMCITY_SERVER="http://43.129.232.36:8111"
   ^-----------------^ SC2034 (warning): zcp_TEAMCITY_SERVER appears unused. Verify use (or export if used externally).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 40:
       state=$(show_build_state $build_id)
                                ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(show_build_state "$build_id")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 41:
       if [[ $state == "running" ]];then
             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${state} == "running" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 43:
           cmd="/app/rest/builds/id:$build_id"
                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd="/app/rest/builds/id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 44:
           cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
               ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd=${cmd}" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 45:
           url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                        ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                  ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                 ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                          ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                           ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 46:
           res=$(eval $eval)
                      ^---^ SC2154 (warning): eval is referenced but not assigned (for output from commands, use "$(eval ...)" ).
                      ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=$(eval "$eval")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 47:
           check=$(echo $res |grep status="UNKNOWN")
                        ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                        ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check=$(echo "$res" |grep status="UNKNOWN")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 48:
           if [[ -z $check ]];then
                    ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ -z ${check} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 57:
       state=$(show_build_state $build_id)
                                ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(show_build_state "$build_id")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 58:
       if [[ $state == "queued" ]];then
             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${state} == "queued" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 59:
           cmd="app/rest/buildQueue/id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd="app/rest/buildQueue/id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 60:
           cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
               ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd=${cmd}" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 61:
           url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                        ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                  ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                 ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                          ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                           ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 63:
           res=$(eval $eval)
                      ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=$(eval "$eval")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 64:
           check=$(echo $res |grep status="UNKNOWN")
                        ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                        ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check=$(echo "$res" |grep status="UNKNOWN")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 65:
           if [[ -z $check ]];then
                    ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ -z ${check} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 73:
       cmd="app/rest/builds?locator=id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 74:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 76:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 79:
       check=$(echo $res|grep "<builds count=\"1\"")
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       check=$(echo "$res"|grep "<builds count=\"1\"")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 80:
       if [[ -z $check ]]; then
                ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ -z ${check} ]]; then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 84:
       state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                   ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(echo "$res" |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g')
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 86:
       echo $state
            ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "$state"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 91:
       cmd="app/rest/builds?locator=id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 92:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 94:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 96:
       check1=$(echo $res|grep "<builds count=\"1\"")
                     ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                     ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       check1=$(echo "$res"|grep "<builds count=\"1\"")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 97:
       if [[ -z $check1 ]]; then
                ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ -z ${check1} ]]; then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 105:
       state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                   ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(echo "$res" |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g')
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 107:
       echo $state
            ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "$state"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 112:
       cmd="app/rest/builds?locator=branch:$branch"
                                           ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=branch:${branch}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 113:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 114:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 119:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                           ^-^ SC2089 (warning): Quotes/backslashes will be treated literally. Use an array.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 121:
       res=eval $url
       ^-----------^ SC2209 (warning): Use var=$(command) to assign output (or quote to assign string).
                ^--^ SC2090 (warning): Quotes/backslashes in this variable will not be respected.
                ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=eval ${url}
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 126:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $JSON_HEADER $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                   ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${JSON_HEADER} ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 128:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 12:
       while [ 1 -eq 1 ]
             ^---------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                 ^-^ SC2050 (warning): This expression is constant. Did you forget the $ on a variable?
   
   Did you mean: 
       while [[ 1 -eq 1 ]]
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 15:
   	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
                ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                              ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                            ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                    ^-------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^---^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files?per_page="$per_page"\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 17:
           if [ ${res_len} -ne 0 ];then
              ^------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           if [[ "${res_len}" -ne 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 18:
   	    let page+=1
               ^---------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 20:
   	    files=(${res[@]} ${files[*]})
                      ^-------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
                                ^---------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 30:
   out=($(get_all_change_files 11154))
        ^---------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check.sh line 3:
   <<'COMMENT'
   ^---------^ SC2188 (warning): This redirection doesn't have a command. Move to its command (or use 'true' as no-op).
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 26:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 30:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 33:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 34:
           if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 35:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 46:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 60:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 65:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 68:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 69:
           if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "be" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 70:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 74:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 88:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 93:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 96:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 97:
           if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "fe" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 98:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 102:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 113:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 115:
           --is_modify_only_invoved_be) check_all_change_files_is_under_be $2; shift ;;
                                                                           ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --is_modify_only_invoved_be) check_all_change_files_is_under_be "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 116:
           --is_modify_only_invoved_fe) check_all_change_files_is_under_fe $2; shift ;;
                                                                           ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --is_modify_only_invoved_fe) check_all_change_files_is_under_fe "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 117:
   	--is_modify_only_doc) check_all_change_files_is_under_doc $2; shift ;;
                                                                     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	--is_modify_only_doc) check_all_change_files_is_under_doc "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 124:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   For more information:
     https://www.shellcheck.net/wiki/SC2068 -- Double quote array expansions to ...
     https://www.shellcheck.net/wiki/SC2071 -- > is for string comparisons. Use ...
     https://www.shellcheck.net/wiki/SC1078 -- Did you forget to close this doub...
   ----------
   
   You can address the above issues in one of three ways:
   1. Manually correct the issue in the offending shell script;
   2. Disable specific issues by adding the comment:
     # shellcheck disable=NNNN
   above the line that contains the issue, where NNNN is the error code;
   3. Add '-e NNNN' to the SHELLCHECK_OPTS setting in your .yml action file.
   
   
   
   ```
   </details>
   
   <details>
   <summary>shfmt errors</summary>
   
   ```
   
   'shfmt ' returned error 1 finding the following formatting issues:
   
   ----------
   --- teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh
   @@ -8,23 +8,22 @@
    echo "===================================="
    echo "START TO DETECT RESIDUAL PROCESSES!"
    
   -check=$(lsof -i:$port|awk '{print $2}'|wc -l)
   -if [ "check$check" != "check0" ];then
   -    if [ "check"${case_level} == "check" ];then
   -        check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep deleted||wc -l)
   +check=$(lsof -i:$port | awk '{print $2}' | wc -l)
   +if [ "check$check" != "check0" ]; then
   +    if [ "check"${case_level} == "check" ]; then
   +        check_res=$(pwdx $(lsof -i:$port | grep -v PID | awk '{print $2}') | grep $env_name | grep deleted || wc -l)
        else
   -        check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep $case_level|grep deleted||wc -l)
   +        check_res=$(pwdx $(lsof -i:$port | grep -v PID | awk '{print $2}') | grep $env_name | grep $case_level | grep deleted || wc -l)
        fi
   -    if [ "check$check_res" != "check0" ];then
   -        be_pid=(`lsof -i:$port|grep -v PID|awk '{print $2}'`)
   +    if [ "check$check_res" != "check0" ]; then
   +        be_pid=($(lsof -i:$port | grep -v PID | awk '{print $2}'))
            echo "Detected residual processes: ${be_pid}"
            echo "kill residual processes: kill -9 ${be_pid}"
            kill -9 $be_pid
        fi
    else
   -        echo "No residual processes"
   +    echo "No residual processes"
    fi
    
   -
    echo "FINISH DETECT RESIDUAL PROCESSES!"
    echo "==================================="
   --- teamcity/doris/benchmark/clickbench/common/check_change_file.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/check_change_file.sh
   @@ -7,7 +7,7 @@
    GITHUB_TOKEN=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
    
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
    
   @@ -16,23 +16,21 @@
        $0 --is_modify_only_invoved_fe pr_id          if pr changed code only invoved fe doc, fs_brocker, return 0; else return 2
        $0 --is_modify_only_invoved_doc pr_id         if pr changed code only invoved doc, fs_brocker, return 0; else return 2
      "
   -  exit 1
   +    exit 1
    }
    
   -
   -function get_all_change_files(){
   +function get_all_change_files() {
        pr_id=$1
        files=()
    
        page=1
        per_page=100
   -    while [ 1 -eq 1 ]
   -    do
   +    while [ 1 -eq 1 ]; do
            #echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   -        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   +        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page | jq -r '.[]|select(.status = "removed")| .filename'))
            res_len=${#res[@]}
            #echo "================"$res_len
   -        if [ ${res_len} -ne 0 ];then
   +        if [ ${res_len} -ne 0 ]; then
                let page+=1
                #files="${res[@]}""$files"
                files=(${res[@]} ${files[*]})
   @@ -44,8 +42,7 @@
        echo "${files[@]}"
    }
    
   -
   -function check_removed_change_file(){
   +function check_removed_change_file() {
        pr_id=$1
        module=$2
        owner='apache'
   @@ -55,26 +52,25 @@
        file_nums=${#res[@]}
        is_code_change_flag=false
        module_file=0
   -    for file in ${res[@]}
   -    do
   -	#echo "$file"
   -	file_dir=$(echo $file|cut -d '/' -f 1)
   -        file_type=$(echo $file|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
   -	#if [[  "check$file_dir" == "check${module}" &&  ($file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js') ]];then
   -	if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]];then
   -	    echo "code has changed, ${file} is deleted"
   -	    is_code_change_flag=true
   -	fi
   -	if [[ "check$file_dir" == "check${module}" ]];then
   +    for file in ${res[@]}; do
   +        #echo "$file"
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        file_type=$(echo $file | rev | cut -d / -f 1 | cut -d '.' -f 1 | rev)
   +        #if [[  "check$file_dir" == "check${module}" &&  ($file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js') ]];then
   +        if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]]; then
   +            echo "code has changed, ${file} is deleted"
   +            is_code_change_flag=true
   +        fi
   +        if [[ "check$file_dir" == "check${module}" ]]; then
                let module_file+=1
   -	fi
   +        fi
        done
    
   -    if [[ "${is_code_change_flag}" == "false" ]];then
   -	echo "NO CODE FILE DELETED, PASSED!"
   +    if [[ "${is_code_change_flag}" == "false" ]]; then
   +        echo "NO CODE FILE DELETED, PASSED!"
            return 0
        else
   -	echo "CODE FILE BE DELETED"
   +        echo "CODE FILE BE DELETED"
            return 2
        fi
    
   @@ -95,20 +91,18 @@
    
        doc_num=0
        doc_sql_manual_num=0
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on docs/fs_brokers or not
   -	echo "$file"
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -	if [[ $file_dir == "docs" ]];then
   +        echo "$file"
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "docs" ]]; then
                let doc_num+=1
   -	fi
   -        if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]];then
   +        fi
   +        if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]]; then
                let doc_sql_manual_num+=1
                continue
            fi
    
   -
            #check change file is md/txt/doc file
            #file_type=$(echo $file|cut -d '.' -f 2)
            #if [[ $file_type == "md" || $file_type == "txt" || $file_type == "doc" ]];then
   @@ -120,7 +114,7 @@
        echo "doc_num: $doc_num"
        echo "file_nums: $file_nums"
        echo "doc_sql_manual_num: $doc_sql_manual_num"
   -    if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]];then
   +    if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]]; then
            echo "JUST MODIFY DOCUMENT, NO COED CHSNGED, PASSED!"
            return 0
        else
   @@ -143,17 +137,16 @@
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED BE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            echo "$file"
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
   -	fi
   +        fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY BE CODE, NO NEED RUN FE UT, PASSED!"
            return 0
        else
   @@ -176,17 +169,16 @@
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED FE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            echo "$file"
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY FE CODE, NO NEED RUN BE UT, PASSED!"
            return 0
        else
   @@ -197,42 +189,49 @@
    
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in
   +    if [ $# ] >0; then
   +        case "$1" in
            --is_modify_only_invoved_be)
   -	    check_removed_change_file $2 "be"
   -	    check_1=$?
   -	    check_all_change_files_is_under_be $2
   -	    check_2=$?
   -	    echo ${check_1}
   -	    echo ${check_2}
   -	    res=`expr $check_1 \* $check_2`
   -	    exit $res
   -	    shift ;;
   +            check_removed_change_file $2 "be"
   +            check_1=$?
   +            check_all_change_files_is_under_be $2
   +            check_2=$?
   +            echo ${check_1}
   +            echo ${check_2}
   +            res=$(expr $check_1 \* $check_2)
   +            exit $res
   +            shift
   +            ;;
            --is_modify_only_invoved_fe)
   -	    check_removed_change_file $2 "fe"
   -	    check_1=$?
   -	    check_all_change_files_is_under_fe $2
   -	    check_2=$?
   -            res=`expr $check_1 \* $check_2`
   -	    echo ${check_1}
   -	    echo ${check_2}
   -	    exit $res
   -	    shift ;;
   -	--is_modify_only_invoved_doc)
   -	    check_removed_change_file $2 "docs"
   -	    check_1=$?
   -	    check_all_change_files_is_under_doc $2
   -	    check_2=$?
   -            res=`expr $check_1 + $check_2`
   -	    echo ${check_1}
   +            check_removed_change_file $2 "fe"
   +            check_1=$?
   +            check_all_change_files_is_under_fe $2
   +            check_2=$?
   +            res=$(expr $check_1 \* $check_2)
   +            echo ${check_1}
                echo ${check_2}
   -	    exit $res
   -	    shift ;;
   -        *) echo "ERROR"; usage; exit 1 ;;
   -    esac
   +            exit $res
   +            shift
   +            ;;
   +        --is_modify_only_invoved_doc)
   +            check_removed_change_file $2 "docs"
   +            check_1=$?
   +            check_all_change_files_is_under_doc $2
   +            check_2=$?
   +            res=$(expr $check_1 + $check_2)
   +            echo ${check_1}
   +            echo ${check_2}
   +            exit $res
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            usage
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/common/clean_disk.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/clean_disk.sh
   @@ -3,7 +3,7 @@
    df -h
    existsTime=720
    #delete files created 20 hours ago
   -echo `date "+%Y-%m-%d %H:%M:%S"` "start to clear oudate file!"
   +echo $(date "+%Y-%m-%d %H:%M:%S") "start to clear oudate file!"
    cd /home/work/teamcity/TeamCity/piplineWork/Compile/
    find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
    cd -
   teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh:43:1: reached EOF without closing quote "
   --- teamcity/doris/benchmark/clickbench/common/teamcity_api.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/teamcity_api.sh
   @@ -139,23 +139,55 @@
    }
    COMMENT
    
   -
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in 
   -        --cancel_running_build) build_id=$2; cancel_running_build $build_id; shift ;;
   -        --cancel_pending_build) build_id=$2; cancel_pending_build $build_id; shift ;;
   -        --show_build_state) build_id=$2; res=$(show_build_state $build_id); echo $res; shift ;;
   -        --show_build_status) build_id=$2; res=$(show_build_status $build_id); echo $res; shift ;;
   -        --show_latest_builds) get_latest_builds; shift ;;
   -        --show_queued_builds) get_queued_builds; shift ;;
   -        --get_all_builds_of_pr_id) get_all_builds $2; shift ;;
   -	--help) usage; shift ;;
   -        *) echo "ERROR"; exit 1 ;;
   -    esac
   +    if [ $# ] >0; then
   +        case "$1" in
   +        --cancel_running_build)
   +            build_id=$2
   +            cancel_running_build $build_id
   +            shift
   +            ;;
   +        --cancel_pending_build)
   +            build_id=$2
   +            cancel_pending_build $build_id
   +            shift
   +            ;;
   +        --show_build_state)
   +            build_id=$2
   +            res=$(show_build_state $build_id)
   +            echo $res
   +            shift
   +            ;;
   +        --show_build_status)
   +            build_id=$2
   +            res=$(show_build_status $build_id)
   +            echo $res
   +            shift
   +            ;;
   +        --show_latest_builds)
   +            get_latest_builds
   +            shift
   +            ;;
   +        --show_queued_builds)
   +            get_queued_builds
   +            shift
   +            ;;
   +        --get_all_builds_of_pr_id)
   +            get_all_builds $2
   +            shift
   +            ;;
   +        --help)
   +            usage
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/common/teamcity_common.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/teamcity_common.sh
   @@ -11,7 +11,7 @@
    JSON_HEADER="--header \"Accept: application/json\""
    
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
         --cancel_running_build build_id    cancel a specific running build
   @@ -32,21 +32,21 @@
        $0 --show_queued_builds             show all queued builds
        $0 --get_all_builds_of_pr_id 9151   get all 9151 builds
      "
   -  exit 1
   +    exit 1
    }
    
    cancel_running_build() {
        build_id=$1
        state=$(show_build_state $build_id)
   -    if [[ $state == "running" ]];then
   +    if [[ $state == "running" ]]; then
            #curl --header "Authorization: Bearer eyJ0eXAiOiAiVENWMiJ9.bW1DcHJpRWNCSktnREhLaHd5Y1lndmpycnJ3.NmEwM2E3YTEtMTVmYy00NGU0LWI1OTAtMzU3MzljODE0Njdk" http://43.129.232.36:8111/app/rest/builds/id:333 -X POST -H 'Content-Type: application/json' -d '{ "buildCancelRequest": {       "comment": "Already running builds will be stopped.",      "readdIntoQueue": "false"    }  }'
            cmd="/app/rest/builds/id:$build_id"
            cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
            url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
            res=$(eval $eval)
   -        check=$(echo $res |grep status="UNKNOWN")
   -        if [[ -z $check ]];then
   -           echo "cancel fail!"
   +        check=$(echo $res | grep status="UNKNOWN")
   +        if [[ -z $check ]]; then
   +            echo "cancel fail!"
            fi
        fi
    
   @@ -55,15 +55,15 @@
    cancel_pending_build() {
        build_id=$1
        state=$(show_build_state $build_id)
   -    if [[ $state == "queued" ]];then
   +    if [[ $state == "queued" ]]; then
            cmd="app/rest/buildQueue/id:$build_id"
            cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
            url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
            #echo $url
            res=$(eval $eval)
   -        check=$(echo $res |grep status="UNKNOWN")
   -        if [[ -z $check ]];then
   -           echo "cancel fail!"
   +        check=$(echo $res | grep status="UNKNOWN")
   +        if [[ -z $check ]]; then
   +            echo "cancel fail!"
            fi
        fi
    }
   @@ -73,15 +73,15 @@
        cmd="app/rest/builds?locator=id:$build_id"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   -    
   +    res=$(eval $url)
   +
        #check build exist or not
   -    check=$(echo $res|grep "<builds count=\"1\"")
   +    check=$(echo $res | grep "<builds count=\"1\"")
        if [[ -z $check ]]; then
            return
        fi
        #get state
   -    state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
   +    state=$(echo $res | awk -F ' ' '{print $9" "$10" "$11}' | awk -F "state=" '{print $2}' | cut -d ' ' -f 1 | sed 's/\"//g')
        #only 2 state: queued and finished
        echo $state
    }
   @@ -91,9 +91,9 @@
        cmd="app/rest/builds?locator=id:$build_id"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   +    res=$(eval $url)
        #check build exist or not
   -    check1=$(echo $res|grep "<builds count=\"1\"")
   +    check1=$(echo $res | grep "<builds count=\"1\"")
        if [[ -z $check1 ]]; then
            return
        fi
   @@ -102,8 +102,8 @@
        #if [[ -z $check ]]; then
        #    return
        #fi
   -    state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
   -    #only 2 state: 
   +    state=$(echo $res | awk -F ' ' '{print $9" "$10" "$11}' | awk -F "status=" '{print $2}' | cut -d ' ' -f 1 | sed 's/\"//g')
   +    #only 2 state:
        echo $state
    }
    
   @@ -111,7 +111,7 @@
        branch=$1
        cmd="app/rest/builds?locator=branch:$branch"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
   -    res=`eval $url`
   +    res=$(eval $url)
    }
    
    get_latest_builds() {
   @@ -125,14 +125,12 @@
        cmd="app/rest/buildQueue"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $JSON_HEADER $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   +    res=$(eval $url)
        #a=$(echo $res|grep -oP 'build id=.*'|head -1)
   -    
   -    
   +
        #a=$res
        #while [[ "check"$a != "check" ]]
        #do
        #    a=$(echo $a|awk -F 'build id="' '{print $2}')
        #done
    }
   -
   --- teamcity/doris/benchmark/clickbench/common/test.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/test.sh
   @@ -3,33 +3,29 @@
    repo=doris
    GITHUB_TOKEN=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
    
   -function get_all_change_files(){
   +function get_all_change_files() {
        pr_id=$1
        files=()
    
        page=1
        per_page=100
   -    while [ 1 -eq 1 ]
   -    do
   -	#echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   -	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   +    while [ 1 -eq 1 ]; do
   +        #echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   +        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page | jq -r '.[]|select(.status = "removed")| .filename'))
            res_len=${#res[@]}
   -        if [ ${res_len} -ne 0 ];then
   -	    let page+=1
   +        if [ ${res_len} -ne 0 ]; then
   +            let page+=1
                #files="${res[@]}""$files"
   -	    files=(${res[@]} ${files[*]})
   +            files=(${res[@]} ${files[*]})
            else
                break
            fi
   -	echo 
   +        echo
        done
        echo "${files[@]}"
    }
    
   -
    out=($(get_all_change_files 11154))
    
   -
   -
    echo "=================="
    echo "${out[@]}"
   --- teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh
   @@ -3,9 +3,8 @@
    #res=(`git diff --name-only HEAD~ HEAD`)
    #file_nums=${#res[@]}
    
   -
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
    
   @@ -14,24 +13,22 @@
        $0 --is_modify_only_invoved_fe pr_id          if pr changed code only invoved fe doc, fs_brocker, return 0; else return 2
        $0 --is_modify_only_invoved_doc pr_id         if pr changed code only invoved doc, fs_brocker, return 0; else return 2
      "
   -  exit 1
   +    exit 1
    }
    
   -
    function check_all_change_files_is_under_doc() {
    
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on docs/fs_brokers or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
   @@ -43,7 +40,7 @@
            #fi
        done
    
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY DOCUMENT, NO COED CHSNGED, PASSED!"
            exit 0
        else
   @@ -57,21 +54,20 @@
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED BE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
   -	fi
   +        fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY BE CODE, NO NEED RUN FE UT, PASSED!"
            exit 0
        else
   @@ -85,21 +81,20 @@
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED FE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY FE CODE, NO NEED RUN BE UT, PASSED!"
            exit 0
        else
   @@ -110,15 +105,28 @@
    
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in
   -        --is_modify_only_invoved_be) check_all_change_files_is_under_be $2; shift ;;
   -        --is_modify_only_invoved_fe) check_all_change_files_is_under_fe $2; shift ;;
   -	--is_modify_only_doc) check_all_change_files_is_under_doc $2; shift ;;
   -        *) echo "ERROR"; usage; exit 1 ;;
   -    esac
   +    if [ $# ] >0; then
   +        case "$1" in
   +        --is_modify_only_invoved_be)
   +            check_all_change_files_is_under_be $2
   +            shift
   +            ;;
   +        --is_modify_only_invoved_fe)
   +            check_all_change_files_is_under_fe $2
   +            shift
   +            ;;
   +        --is_modify_only_doc)
   +            check_all_change_files_is_under_doc $2
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            usage
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/prepare.sh.orig
   +++ teamcity/doris/benchmark/clickbench/prepare.sh
   @@ -22,4 +22,3 @@
    fi
    qa_home="${pipeline_home}/selectdb-qa"
    cd "${qa_home}" && git stash && git checkout main && git pull && cd -
   -
   ----------
   
   You can reformat the above files to meet shfmt's requirements by typing:
   
     shfmt  -w filename
   
   
   ```
   </details>
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] yiguolei commented on pull request #13259: test benchmark pipeline

Posted by GitBox <gi...@apache.org>.
yiguolei commented on PR #13259:
URL: https://github.com/apache/doris/pull/13259#issuecomment-1278432244

   Me too


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] github-actions[bot] commented on pull request #13259: test benchmark pipeline

Posted by GitBox <gi...@apache.org>.
github-actions[bot] commented on PR #13259:
URL: https://github.com/apache/doris/pull/13259#issuecomment-1328460698

   #### `sh-checker report`
   
   To get the full details, please check in the [job]("https://github.com/apache/doris/actions/runs/3561265949") output.
   
   <details>
   <summary>shellcheck errors</summary>
   
   ```
   
   'shellcheck ' returned error 1 finding the following syntactical issues:
   
   ----------
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 11:
   check=$(lsof -i:$port|awk '{print $2}'|wc -l)
                   ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   check=$(lsof -i:"$port"|awk '{print $2}'|wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 12:
   if [ "check$check" != "check0" ];then
      ^---------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
              ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   if [[ "check${check}" != "check0" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 13:
       if [ "check"${case_level} == "check" ];then
          ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                   ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       if [[ "check""${case_level}" == "check" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 14:
           check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep deleted||wc -l)
                            ^-- SC2046 (warning): Quote this to prevent word splitting.
                            ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                     ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                     ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                              ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                              ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check_res=$(pwdx $(lsof -i:"$port"|grep -v PID|awk '{print $2}')|grep $env_name|grep deleted||wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 16:
           check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep $case_level|grep deleted||wc -l)
                            ^-- SC2046 (warning): Quote this to prevent word splitting.
                            ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                     ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                     ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                              ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                              ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                             ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                             ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check_res=$(pwdx $(lsof -i:"$port"|grep -v PID|awk '{print $2}')|grep $env_name|grep $case_level|grep deleted||wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 18:
       if [ "check$check_res" != "check0" ];then
          ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                  ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ "check${check_res}" != "check0" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 19:
           be_pid=(`lsof -i:$port|grep -v PID|awk '{print $2}'`)
                   ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                   ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                            ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                            ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           be_pid=($(lsof -i:"$port"|grep -v PID|awk '{print $2}'))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 20:
           echo "Detected residual processes: ${be_pid}"
                                              ^-------^ SC2128 (warning): Expanding an array without an index only gives the first element.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 21:
           echo "kill residual processes: kill -9 ${be_pid}"
                                                  ^-------^ SC2128 (warning): Expanding an array without an index only gives the first element.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 22:
           kill -9 $be_pid
                   ^-----^ SC2128 (warning): Expanding an array without an index only gives the first element.
                   ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           kill -9 "$be_pid"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 29:
       while [ 1 -eq 1 ]
             ^---------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                 ^-^ SC2050 (warning): This expression is constant. Did you forget the $ on a variable?
   
   Did you mean: 
       while [[ 1 -eq 1 ]]
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 32:
           res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
                ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                              ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                            ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                    ^-------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^---^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files?per_page="$per_page"\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 35:
           if [ ${res_len} -ne 0 ];then
              ^------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           if [[ "${res_len}" -ne 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 36:
               let page+=1
               ^---------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 38:
               files=(${res[@]} ${files[*]})
                      ^-------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
                                ^---------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 54:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 58:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 61:
   	file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 62:
           file_type=$(echo $file|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
                            ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                            ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_type=$(echo "$file"|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 64:
   	if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]];then
                 ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                     ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                           ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ ${file_type} == "cpp" || ${file_type} == "c" || ${file_type} == "java" || ${file_type} == "py" || ${file_type} == "h" || ${file_type} == 'js' ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 68:
   	if [[ "check$file_dir" == "check${module}" ]];then
                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ "check${file_dir}" == "check${module}" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 69:
               let module_file+=1
               ^----------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 89:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 98:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 101:
   	echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 102:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 103:
   	if [[ $file_dir == "docs" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ ${file_dir} == "docs" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 104:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 106:
           if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]];then
                  ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                              ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ "${file}" =~ "docs/zh-CN/docs/sql-manual/" || "${file}" =~ "docs/en/docs/sql-manual/" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 107:
               let doc_sql_manual_num+=1
               ^-----------------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 120:
       echo "doc_num: $doc_num"
                      ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "doc_num: ${doc_num}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 121:
       echo "file_nums: $file_nums"
                        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "file_nums: ${file_nums}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 122:
       echo "doc_sql_manual_num: $doc_sql_manual_num"
                                 ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "doc_sql_manual_num: ${doc_sql_manual_num}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 123:
       if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} && ${doc_sql_manual_num} -eq 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 138:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 146:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 148:
           echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 150:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 151:
           if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "be" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 152:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 156:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 171:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 179:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 181:
           echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 183:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 184:
           if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "fe" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 185:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 189:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 200:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 203:
   	    check_removed_change_file $2 "be"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "be"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 205:
   	    check_all_change_files_is_under_be $2
                                                  ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_be "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 207:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 208:
   	    echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 209:
   	    res=`expr $check_1 \* $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    res=$(expr "$check_1" \* $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 210:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 213:
   	    check_removed_change_file $2 "fe"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "fe"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 215:
   	    check_all_change_files_is_under_fe $2
                                                  ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_fe "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 217:
               res=`expr $check_1 \* $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
               res=$(expr "$check_1" \* $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 218:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 219:
   	    echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 220:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 223:
   	    check_removed_change_file $2 "docs"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "docs"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 225:
   	    check_all_change_files_is_under_doc $2
                                                   ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_doc "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 227:
               res=`expr $check_1 + $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                    ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                    ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
               res=$(expr "$check_1" + $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 228:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 229:
               echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
               echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 230:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 238:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 6:
   echo `date "+%Y-%m-%d %H:%M:%S"` "start to clear oudate file!"
        ^-------------------------^ SC2046 (warning): Quote this to prevent word splitting.
        ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
   
   Did you mean: 
   echo $(date "+%Y-%m-%d %H:%M:%S") "start to clear oudate file!"
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 7:
   cd /home/work/teamcity/TeamCity/piplineWork/Compile/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/Compile/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 8:
   find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                         ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 9:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   ^--^ SC2103 (info): Use a ( subshell ) to avoid having to cd back.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 10:
   cd /home/work/teamcity/TeamCity/piplineWork/feUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/feUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 11:
   find /home/work/teamcity/TeamCity/piplineWork/feUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/feUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 12:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 13:
   cd /home/work/teamcity/TeamCity/piplineWork/beUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/beUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 14:
   find /home/work/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 15:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 16:
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 17:
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                         ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 18:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 19:
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 20:
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_compile.sh line 3:
   id=$(echo $RANDOM)
      ^-------------^ SC2116 (style): Useless echo? Instead of 'cmd $(echo foo)', just use 'cmd foo'.
             ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
             ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   id=$(echo "$RANDOM")
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_compile.sh line 5:
   docker run -i --rm --name doris-compile-$id -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v $work_path:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
                                           ^-^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                           ^-^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                                    ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   docker run -i --rm --name doris-compile-"$id" -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v $work_path:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 40:
       docker_name="doris-compile-"$(echo $RANDOM)
                                  ^-- SC1078 (warning): Did you forget to close this double quoted string?
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 42:
       cmd="docker run -i --rm --name doris-compile-$id -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v %system.teamcity.build.workingDir%:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
           ^-- SC1079 (info): This is actually an end quote, but due to next char it looks suspect.
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 43:
   "
   ^-- SC1073 (error): Couldn't parse this double quoted string. Fix to allow more checks.
   ^-- SC1009 (info): The mentioned syntax error was in this simple command.
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 45:
   
   ^-- SC1072 (error): Expected end of double quoted string. Fix any mentioned problems and try again.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 5:
   <<'COMMENT'
   ^---------^ SC2188 (warning): This redirection doesn't have a command. Move to its command (or use 'true' as no-op).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 145:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 147:
           --cancel_running_build) build_id=$2; cancel_running_build $build_id; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --cancel_running_build) build_id=$2; cancel_running_build "$build_id"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 148:
           --cancel_pending_build) build_id=$2; cancel_pending_build $build_id; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --cancel_pending_build) build_id=$2; cancel_pending_build "$build_id"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 149:
           --show_build_state) build_id=$2; res=$(show_build_state $build_id); echo $res; shift ;;
                                                                   ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                   ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --show_build_state) build_id=$2; res=$(show_build_state "$build_id"); echo $res; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 150:
           --show_build_status) build_id=$2; res=$(show_build_status $build_id); echo $res; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                      ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                      ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --show_build_status) build_id=$2; res=$(show_build_status "$build_id"); echo $res; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 153:
           --get_all_builds_of_pr_id) get_all_builds $2; shift ;;
                                                     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --get_all_builds_of_pr_id) get_all_builds "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 161:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 4:
   zcp_TOKEN="eyJ0eXAiOiAiVENWMiJ9.bW1DcHJpRWNCSktnREhLaHd5Y1lndmpycnJ3.NmEwM2E3YTEtMTVmYy00NGU0LWI1OTAtMzU3MzljODE0Njdk"
   ^-------^ SC2034 (warning): zcp_TOKEN appears unused. Verify use (or export if used externally).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 7:
   zcp_TEAMCITY_SERVER="http://43.129.232.36:8111"
   ^-----------------^ SC2034 (warning): zcp_TEAMCITY_SERVER appears unused. Verify use (or export if used externally).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 40:
       state=$(show_build_state $build_id)
                                ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(show_build_state "$build_id")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 41:
       if [[ $state == "running" ]];then
             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${state} == "running" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 43:
           cmd="/app/rest/builds/id:$build_id"
                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd="/app/rest/builds/id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 44:
           cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
               ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd=${cmd}" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 45:
           url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                        ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                  ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                 ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                          ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                           ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 46:
           res=$(eval $eval)
                      ^---^ SC2154 (warning): eval is referenced but not assigned (for output from commands, use "$(eval ...)" ).
                      ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=$(eval "$eval")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 47:
           check=$(echo $res |grep status="UNKNOWN")
                        ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                        ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check=$(echo "$res" |grep status="UNKNOWN")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 48:
           if [[ -z $check ]];then
                    ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ -z ${check} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 57:
       state=$(show_build_state $build_id)
                                ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(show_build_state "$build_id")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 58:
       if [[ $state == "queued" ]];then
             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${state} == "queued" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 59:
           cmd="app/rest/buildQueue/id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd="app/rest/buildQueue/id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 60:
           cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
               ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd=${cmd}" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 61:
           url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                        ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                  ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                 ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                          ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                           ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 63:
           res=$(eval $eval)
                      ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=$(eval "$eval")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 64:
           check=$(echo $res |grep status="UNKNOWN")
                        ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                        ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check=$(echo "$res" |grep status="UNKNOWN")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 65:
           if [[ -z $check ]];then
                    ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ -z ${check} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 73:
       cmd="app/rest/builds?locator=id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 74:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 76:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 79:
       check=$(echo $res|grep "<builds count=\"1\"")
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       check=$(echo "$res"|grep "<builds count=\"1\"")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 80:
       if [[ -z $check ]]; then
                ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ -z ${check} ]]; then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 84:
       state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                   ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(echo "$res" |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g')
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 86:
       echo $state
            ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "$state"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 91:
       cmd="app/rest/builds?locator=id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 92:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 94:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 96:
       check1=$(echo $res|grep "<builds count=\"1\"")
                     ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                     ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       check1=$(echo "$res"|grep "<builds count=\"1\"")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 97:
       if [[ -z $check1 ]]; then
                ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ -z ${check1} ]]; then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 105:
       state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                   ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(echo "$res" |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g')
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 107:
       echo $state
            ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "$state"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 112:
       cmd="app/rest/builds?locator=branch:$branch"
                                           ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=branch:${branch}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 113:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 114:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 119:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                           ^-^ SC2089 (warning): Quotes/backslashes will be treated literally. Use an array.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 121:
       res=eval $url
       ^-----------^ SC2209 (warning): Use var=$(command) to assign output (or quote to assign string).
                ^--^ SC2090 (warning): Quotes/backslashes in this variable will not be respected.
                ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=eval ${url}
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 126:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $JSON_HEADER $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                   ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${JSON_HEADER} ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 128:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 12:
       while [ 1 -eq 1 ]
             ^---------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                 ^-^ SC2050 (warning): This expression is constant. Did you forget the $ on a variable?
   
   Did you mean: 
       while [[ 1 -eq 1 ]]
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 15:
   	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
                ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                              ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                            ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                    ^-------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^---^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files?per_page="$per_page"\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 17:
           if [ ${res_len} -ne 0 ];then
              ^------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           if [[ "${res_len}" -ne 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 18:
   	    let page+=1
               ^---------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 20:
   	    files=(${res[@]} ${files[*]})
                      ^-------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
                                ^---------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 30:
   out=($(get_all_change_files 11154))
        ^---------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check.sh line 3:
   <<'COMMENT'
   ^---------^ SC2188 (warning): This redirection doesn't have a command. Move to its command (or use 'true' as no-op).
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 26:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 30:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 33:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 34:
           if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 35:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 46:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 60:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 65:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 68:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 69:
           if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "be" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 70:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 74:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 88:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 93:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 96:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 97:
           if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "fe" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 98:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 102:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 113:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 115:
           --is_modify_only_invoved_be) check_all_change_files_is_under_be $2; shift ;;
                                                                           ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --is_modify_only_invoved_be) check_all_change_files_is_under_be "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 116:
           --is_modify_only_invoved_fe) check_all_change_files_is_under_fe $2; shift ;;
                                                                           ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --is_modify_only_invoved_fe) check_all_change_files_is_under_fe "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 117:
   	--is_modify_only_doc) check_all_change_files_is_under_doc $2; shift ;;
                                                                     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	--is_modify_only_doc) check_all_change_files_is_under_doc "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 124:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   For more information:
     https://www.shellcheck.net/wiki/SC2068 -- Double quote array expansions to ...
     https://www.shellcheck.net/wiki/SC2071 -- > is for string comparisons. Use ...
     https://www.shellcheck.net/wiki/SC1078 -- Did you forget to close this doub...
   ----------
   
   You can address the above issues in one of three ways:
   1. Manually correct the issue in the offending shell script;
   2. Disable specific issues by adding the comment:
     # shellcheck disable=NNNN
   above the line that contains the issue, where NNNN is the error code;
   3. Add '-e NNNN' to the SHELLCHECK_OPTS setting in your .yml action file.
   
   
   
   ```
   </details>
   
   <details>
   <summary>shfmt errors</summary>
   
   ```
   
   'shfmt ' returned error 1 finding the following formatting issues:
   
   ----------
   --- bin/start_be.sh.orig
   +++ bin/start_be.sh
   @@ -233,4 +233,3 @@
        export DORIS_LOG_TO_STDERR=1
        ${LIMIT:+${LIMIT}} "${DORIS_HOME}/lib/doris_be" "$@" 2>&1 </dev/null
    fi
   -
   --- teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh
   @@ -8,23 +8,22 @@
    echo "===================================="
    echo "START TO DETECT RESIDUAL PROCESSES!"
    
   -check=$(lsof -i:$port|awk '{print $2}'|wc -l)
   -if [ "check$check" != "check0" ];then
   -    if [ "check"${case_level} == "check" ];then
   -        check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep deleted||wc -l)
   +check=$(lsof -i:$port | awk '{print $2}' | wc -l)
   +if [ "check$check" != "check0" ]; then
   +    if [ "check"${case_level} == "check" ]; then
   +        check_res=$(pwdx $(lsof -i:$port | grep -v PID | awk '{print $2}') | grep $env_name | grep deleted || wc -l)
        else
   -        check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep $case_level|grep deleted||wc -l)
   +        check_res=$(pwdx $(lsof -i:$port | grep -v PID | awk '{print $2}') | grep $env_name | grep $case_level | grep deleted || wc -l)
        fi
   -    if [ "check$check_res" != "check0" ];then
   -        be_pid=(`lsof -i:$port|grep -v PID|awk '{print $2}'`)
   +    if [ "check$check_res" != "check0" ]; then
   +        be_pid=($(lsof -i:$port | grep -v PID | awk '{print $2}'))
            echo "Detected residual processes: ${be_pid}"
            echo "kill residual processes: kill -9 ${be_pid}"
            kill -9 $be_pid
        fi
    else
   -        echo "No residual processes"
   +    echo "No residual processes"
    fi
    
   -
    echo "FINISH DETECT RESIDUAL PROCESSES!"
    echo "==================================="
   --- teamcity/doris/benchmark/clickbench/common/check_change_file.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/check_change_file.sh
   @@ -7,7 +7,7 @@
    GITHUB_TOKEN=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
    
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
    
   @@ -16,23 +16,21 @@
        $0 --is_modify_only_invoved_fe pr_id          if pr changed code only invoved fe doc, fs_brocker, return 0; else return 2
        $0 --is_modify_only_invoved_doc pr_id         if pr changed code only invoved doc, fs_brocker, return 0; else return 2
      "
   -  exit 1
   +    exit 1
    }
    
   -
   -function get_all_change_files(){
   +function get_all_change_files() {
        pr_id=$1
        files=()
    
        page=1
        per_page=100
   -    while [ 1 -eq 1 ]
   -    do
   +    while [ 1 -eq 1 ]; do
            #echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   -        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   +        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page | jq -r '.[]|select(.status = "removed")| .filename'))
            res_len=${#res[@]}
            #echo "================"$res_len
   -        if [ ${res_len} -ne 0 ];then
   +        if [ ${res_len} -ne 0 ]; then
                let page+=1
                #files="${res[@]}""$files"
                files=(${res[@]} ${files[*]})
   @@ -44,8 +42,7 @@
        echo "${files[@]}"
    }
    
   -
   -function check_removed_change_file(){
   +function check_removed_change_file() {
        pr_id=$1
        module=$2
        owner='apache'
   @@ -55,26 +52,25 @@
        file_nums=${#res[@]}
        is_code_change_flag=false
        module_file=0
   -    for file in ${res[@]}
   -    do
   -	#echo "$file"
   -	file_dir=$(echo $file|cut -d '/' -f 1)
   -        file_type=$(echo $file|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
   -	#if [[  "check$file_dir" == "check${module}" &&  ($file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js') ]];then
   -	if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]];then
   -	    echo "code has changed, ${file} is deleted"
   -	    is_code_change_flag=true
   -	fi
   -	if [[ "check$file_dir" == "check${module}" ]];then
   +    for file in ${res[@]}; do
   +        #echo "$file"
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        file_type=$(echo $file | rev | cut -d / -f 1 | cut -d '.' -f 1 | rev)
   +        #if [[  "check$file_dir" == "check${module}" &&  ($file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js') ]];then
   +        if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]]; then
   +            echo "code has changed, ${file} is deleted"
   +            is_code_change_flag=true
   +        fi
   +        if [[ "check$file_dir" == "check${module}" ]]; then
                let module_file+=1
   -	fi
   +        fi
        done
    
   -    if [[ "${is_code_change_flag}" == "false" ]];then
   -	echo "NO CODE FILE DELETED, PASSED!"
   +    if [[ "${is_code_change_flag}" == "false" ]]; then
   +        echo "NO CODE FILE DELETED, PASSED!"
            return 0
        else
   -	echo "CODE FILE BE DELETED"
   +        echo "CODE FILE BE DELETED"
            return 2
        fi
    
   @@ -95,20 +91,18 @@
    
        doc_num=0
        doc_sql_manual_num=0
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on docs/fs_brokers or not
   -	echo "$file"
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -	if [[ $file_dir == "docs" ]];then
   +        echo "$file"
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "docs" ]]; then
                let doc_num+=1
   -	fi
   -        if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]];then
   +        fi
   +        if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]]; then
                let doc_sql_manual_num+=1
                continue
            fi
    
   -
            #check change file is md/txt/doc file
            #file_type=$(echo $file|cut -d '.' -f 2)
            #if [[ $file_type == "md" || $file_type == "txt" || $file_type == "doc" ]];then
   @@ -120,7 +114,7 @@
        echo "doc_num: $doc_num"
        echo "file_nums: $file_nums"
        echo "doc_sql_manual_num: $doc_sql_manual_num"
   -    if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]];then
   +    if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]]; then
            echo "JUST MODIFY DOCUMENT, NO COED CHSNGED, PASSED!"
            return 0
        else
   @@ -143,17 +137,16 @@
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED BE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            echo "$file"
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
   -	fi
   +        fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY BE CODE, NO NEED RUN FE UT, PASSED!"
            return 0
        else
   @@ -176,17 +169,16 @@
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED FE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            echo "$file"
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY FE CODE, NO NEED RUN BE UT, PASSED!"
            return 0
        else
   @@ -197,42 +189,49 @@
    
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in
   +    if [ $# ] >0; then
   +        case "$1" in
            --is_modify_only_invoved_be)
   -	    check_removed_change_file $2 "be"
   -	    check_1=$?
   -	    check_all_change_files_is_under_be $2
   -	    check_2=$?
   -	    echo ${check_1}
   -	    echo ${check_2}
   -	    res=`expr $check_1 \* $check_2`
   -	    exit $res
   -	    shift ;;
   +            check_removed_change_file $2 "be"
   +            check_1=$?
   +            check_all_change_files_is_under_be $2
   +            check_2=$?
   +            echo ${check_1}
   +            echo ${check_2}
   +            res=$(expr $check_1 \* $check_2)
   +            exit $res
   +            shift
   +            ;;
            --is_modify_only_invoved_fe)
   -	    check_removed_change_file $2 "fe"
   -	    check_1=$?
   -	    check_all_change_files_is_under_fe $2
   -	    check_2=$?
   -            res=`expr $check_1 \* $check_2`
   -	    echo ${check_1}
   -	    echo ${check_2}
   -	    exit $res
   -	    shift ;;
   -	--is_modify_only_invoved_doc)
   -	    check_removed_change_file $2 "docs"
   -	    check_1=$?
   -	    check_all_change_files_is_under_doc $2
   -	    check_2=$?
   -            res=`expr $check_1 + $check_2`
   -	    echo ${check_1}
   +            check_removed_change_file $2 "fe"
   +            check_1=$?
   +            check_all_change_files_is_under_fe $2
   +            check_2=$?
   +            res=$(expr $check_1 \* $check_2)
   +            echo ${check_1}
                echo ${check_2}
   -	    exit $res
   -	    shift ;;
   -        *) echo "ERROR"; usage; exit 1 ;;
   -    esac
   +            exit $res
   +            shift
   +            ;;
   +        --is_modify_only_invoved_doc)
   +            check_removed_change_file $2 "docs"
   +            check_1=$?
   +            check_all_change_files_is_under_doc $2
   +            check_2=$?
   +            res=$(expr $check_1 + $check_2)
   +            echo ${check_1}
   +            echo ${check_2}
   +            exit $res
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            usage
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/common/clean_disk.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/clean_disk.sh
   @@ -3,7 +3,7 @@
    df -h
    existsTime=720
    #delete files created 20 hours ago
   -echo `date "+%Y-%m-%d %H:%M:%S"` "start to clear oudate file!"
   +echo $(date "+%Y-%m-%d %H:%M:%S") "start to clear oudate file!"
    cd /home/work/teamcity/TeamCity/piplineWork/Compile/
    find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
    cd -
   teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh:43:1: reached EOF without closing quote "
   --- teamcity/doris/benchmark/clickbench/common/teamcity_api.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/teamcity_api.sh
   @@ -139,23 +139,55 @@
    }
    COMMENT
    
   -
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in 
   -        --cancel_running_build) build_id=$2; cancel_running_build $build_id; shift ;;
   -        --cancel_pending_build) build_id=$2; cancel_pending_build $build_id; shift ;;
   -        --show_build_state) build_id=$2; res=$(show_build_state $build_id); echo $res; shift ;;
   -        --show_build_status) build_id=$2; res=$(show_build_status $build_id); echo $res; shift ;;
   -        --show_latest_builds) get_latest_builds; shift ;;
   -        --show_queued_builds) get_queued_builds; shift ;;
   -        --get_all_builds_of_pr_id) get_all_builds $2; shift ;;
   -	--help) usage; shift ;;
   -        *) echo "ERROR"; exit 1 ;;
   -    esac
   +    if [ $# ] >0; then
   +        case "$1" in
   +        --cancel_running_build)
   +            build_id=$2
   +            cancel_running_build $build_id
   +            shift
   +            ;;
   +        --cancel_pending_build)
   +            build_id=$2
   +            cancel_pending_build $build_id
   +            shift
   +            ;;
   +        --show_build_state)
   +            build_id=$2
   +            res=$(show_build_state $build_id)
   +            echo $res
   +            shift
   +            ;;
   +        --show_build_status)
   +            build_id=$2
   +            res=$(show_build_status $build_id)
   +            echo $res
   +            shift
   +            ;;
   +        --show_latest_builds)
   +            get_latest_builds
   +            shift
   +            ;;
   +        --show_queued_builds)
   +            get_queued_builds
   +            shift
   +            ;;
   +        --get_all_builds_of_pr_id)
   +            get_all_builds $2
   +            shift
   +            ;;
   +        --help)
   +            usage
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/common/teamcity_common.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/teamcity_common.sh
   @@ -11,7 +11,7 @@
    JSON_HEADER="--header \"Accept: application/json\""
    
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
         --cancel_running_build build_id    cancel a specific running build
   @@ -32,21 +32,21 @@
        $0 --show_queued_builds             show all queued builds
        $0 --get_all_builds_of_pr_id 9151   get all 9151 builds
      "
   -  exit 1
   +    exit 1
    }
    
    cancel_running_build() {
        build_id=$1
        state=$(show_build_state $build_id)
   -    if [[ $state == "running" ]];then
   +    if [[ $state == "running" ]]; then
            #curl --header "Authorization: Bearer eyJ0eXAiOiAiVENWMiJ9.bW1DcHJpRWNCSktnREhLaHd5Y1lndmpycnJ3.NmEwM2E3YTEtMTVmYy00NGU0LWI1OTAtMzU3MzljODE0Njdk" http://43.129.232.36:8111/app/rest/builds/id:333 -X POST -H 'Content-Type: application/json' -d '{ "buildCancelRequest": {       "comment": "Already running builds will be stopped.",      "readdIntoQueue": "false"    }  }'
            cmd="/app/rest/builds/id:$build_id"
            cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
            url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
            res=$(eval $eval)
   -        check=$(echo $res |grep status="UNKNOWN")
   -        if [[ -z $check ]];then
   -           echo "cancel fail!"
   +        check=$(echo $res | grep status="UNKNOWN")
   +        if [[ -z $check ]]; then
   +            echo "cancel fail!"
            fi
        fi
    
   @@ -55,15 +55,15 @@
    cancel_pending_build() {
        build_id=$1
        state=$(show_build_state $build_id)
   -    if [[ $state == "queued" ]];then
   +    if [[ $state == "queued" ]]; then
            cmd="app/rest/buildQueue/id:$build_id"
            cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
            url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
            #echo $url
            res=$(eval $eval)
   -        check=$(echo $res |grep status="UNKNOWN")
   -        if [[ -z $check ]];then
   -           echo "cancel fail!"
   +        check=$(echo $res | grep status="UNKNOWN")
   +        if [[ -z $check ]]; then
   +            echo "cancel fail!"
            fi
        fi
    }
   @@ -73,15 +73,15 @@
        cmd="app/rest/builds?locator=id:$build_id"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   -    
   +    res=$(eval $url)
   +
        #check build exist or not
   -    check=$(echo $res|grep "<builds count=\"1\"")
   +    check=$(echo $res | grep "<builds count=\"1\"")
        if [[ -z $check ]]; then
            return
        fi
        #get state
   -    state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
   +    state=$(echo $res | awk -F ' ' '{print $9" "$10" "$11}' | awk -F "state=" '{print $2}' | cut -d ' ' -f 1 | sed 's/\"//g')
        #only 2 state: queued and finished
        echo $state
    }
   @@ -91,9 +91,9 @@
        cmd="app/rest/builds?locator=id:$build_id"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   +    res=$(eval $url)
        #check build exist or not
   -    check1=$(echo $res|grep "<builds count=\"1\"")
   +    check1=$(echo $res | grep "<builds count=\"1\"")
        if [[ -z $check1 ]]; then
            return
        fi
   @@ -102,8 +102,8 @@
        #if [[ -z $check ]]; then
        #    return
        #fi
   -    state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
   -    #only 2 state: 
   +    state=$(echo $res | awk -F ' ' '{print $9" "$10" "$11}' | awk -F "status=" '{print $2}' | cut -d ' ' -f 1 | sed 's/\"//g')
   +    #only 2 state:
        echo $state
    }
    
   @@ -111,7 +111,7 @@
        branch=$1
        cmd="app/rest/builds?locator=branch:$branch"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
   -    res=`eval $url`
   +    res=$(eval $url)
    }
    
    get_latest_builds() {
   @@ -125,14 +125,12 @@
        cmd="app/rest/buildQueue"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $JSON_HEADER $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   +    res=$(eval $url)
        #a=$(echo $res|grep -oP 'build id=.*'|head -1)
   -    
   -    
   +
        #a=$res
        #while [[ "check"$a != "check" ]]
        #do
        #    a=$(echo $a|awk -F 'build id="' '{print $2}')
        #done
    }
   -
   --- teamcity/doris/benchmark/clickbench/common/test.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/test.sh
   @@ -3,33 +3,29 @@
    repo=doris
    GITHUB_TOKEN=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
    
   -function get_all_change_files(){
   +function get_all_change_files() {
        pr_id=$1
        files=()
    
        page=1
        per_page=100
   -    while [ 1 -eq 1 ]
   -    do
   -	#echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   -	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   +    while [ 1 -eq 1 ]; do
   +        #echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   +        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page | jq -r '.[]|select(.status = "removed")| .filename'))
            res_len=${#res[@]}
   -        if [ ${res_len} -ne 0 ];then
   -	    let page+=1
   +        if [ ${res_len} -ne 0 ]; then
   +            let page+=1
                #files="${res[@]}""$files"
   -	    files=(${res[@]} ${files[*]})
   +            files=(${res[@]} ${files[*]})
            else
                break
            fi
   -	echo 
   +        echo
        done
        echo "${files[@]}"
    }
    
   -
    out=($(get_all_change_files 11154))
    
   -
   -
    echo "=================="
    echo "${out[@]}"
   --- teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh
   @@ -3,9 +3,8 @@
    #res=(`git diff --name-only HEAD~ HEAD`)
    #file_nums=${#res[@]}
    
   -
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
    
   @@ -14,24 +13,22 @@
        $0 --is_modify_only_invoved_fe pr_id          if pr changed code only invoved fe doc, fs_brocker, return 0; else return 2
        $0 --is_modify_only_invoved_doc pr_id         if pr changed code only invoved doc, fs_brocker, return 0; else return 2
      "
   -  exit 1
   +    exit 1
    }
    
   -
    function check_all_change_files_is_under_doc() {
    
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on docs/fs_brokers or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
   @@ -43,7 +40,7 @@
            #fi
        done
    
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY DOCUMENT, NO COED CHSNGED, PASSED!"
            exit 0
        else
   @@ -57,21 +54,20 @@
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED BE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
   -	fi
   +        fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY BE CODE, NO NEED RUN FE UT, PASSED!"
            exit 0
        else
   @@ -85,21 +81,20 @@
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED FE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY FE CODE, NO NEED RUN BE UT, PASSED!"
            exit 0
        else
   @@ -110,15 +105,28 @@
    
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in
   -        --is_modify_only_invoved_be) check_all_change_files_is_under_be $2; shift ;;
   -        --is_modify_only_invoved_fe) check_all_change_files_is_under_fe $2; shift ;;
   -	--is_modify_only_doc) check_all_change_files_is_under_doc $2; shift ;;
   -        *) echo "ERROR"; usage; exit 1 ;;
   -    esac
   +    if [ $# ] >0; then
   +        case "$1" in
   +        --is_modify_only_invoved_be)
   +            check_all_change_files_is_under_be $2
   +            shift
   +            ;;
   +        --is_modify_only_invoved_fe)
   +            check_all_change_files_is_under_fe $2
   +            shift
   +            ;;
   +        --is_modify_only_doc)
   +            check_all_change_files_is_under_doc $2
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            usage
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/prepare.sh.orig
   +++ teamcity/doris/benchmark/clickbench/prepare.sh
   @@ -22,9 +22,3 @@
    fi
    qa_home="${pipeline_home}/selectdb-qa"
    cd "${qa_home}" && git stash && git checkout main && git pull && cd -
   -
   -
   -
   -
   -
   -
   ----------
   
   You can reformat the above files to meet shfmt's requirements by typing:
   
     shfmt  -w filename
   
   
   ```
   </details>
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] github-actions[bot] commented on pull request #13259: test benchmark pipeline

Posted by GitBox <gi...@apache.org>.
github-actions[bot] commented on PR #13259:
URL: https://github.com/apache/doris/pull/13259#issuecomment-1326388256

   #### `sh-checker report`
   
   To get the full details, please check in the [job]("https://github.com/apache/doris/actions/runs/3540603767") output.
   
   <details>
   <summary>shellcheck errors</summary>
   
   ```
   
   'shellcheck ' returned error 1 finding the following syntactical issues:
   
   ----------
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 11:
   check=$(lsof -i:$port|awk '{print $2}'|wc -l)
                   ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   check=$(lsof -i:"$port"|awk '{print $2}'|wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 12:
   if [ "check$check" != "check0" ];then
      ^---------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
              ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   if [[ "check${check}" != "check0" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 13:
       if [ "check"${case_level} == "check" ];then
          ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                   ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       if [[ "check""${case_level}" == "check" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 14:
           check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep deleted||wc -l)
                            ^-- SC2046 (warning): Quote this to prevent word splitting.
                            ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                     ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                     ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                              ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                              ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check_res=$(pwdx $(lsof -i:"$port"|grep -v PID|awk '{print $2}')|grep $env_name|grep deleted||wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 16:
           check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep $case_level|grep deleted||wc -l)
                            ^-- SC2046 (warning): Quote this to prevent word splitting.
                            ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                     ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                     ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                              ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                              ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                             ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                             ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check_res=$(pwdx $(lsof -i:"$port"|grep -v PID|awk '{print $2}')|grep $env_name|grep $case_level|grep deleted||wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 18:
       if [ "check$check_res" != "check0" ];then
          ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                  ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ "check${check_res}" != "check0" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 19:
           be_pid=(`lsof -i:$port|grep -v PID|awk '{print $2}'`)
                   ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                   ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                            ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                            ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           be_pid=($(lsof -i:"$port"|grep -v PID|awk '{print $2}'))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 20:
           echo "Detected residual processes: ${be_pid}"
                                              ^-------^ SC2128 (warning): Expanding an array without an index only gives the first element.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 21:
           echo "kill residual processes: kill -9 ${be_pid}"
                                                  ^-------^ SC2128 (warning): Expanding an array without an index only gives the first element.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 22:
           kill -9 $be_pid
                   ^-----^ SC2128 (warning): Expanding an array without an index only gives the first element.
                   ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           kill -9 "$be_pid"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 29:
       while [ 1 -eq 1 ]
             ^---------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                 ^-^ SC2050 (warning): This expression is constant. Did you forget the $ on a variable?
   
   Did you mean: 
       while [[ 1 -eq 1 ]]
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 32:
           res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
                ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                              ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                            ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                    ^-------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^---^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files?per_page="$per_page"\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 35:
           if [ ${res_len} -ne 0 ];then
              ^------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           if [[ "${res_len}" -ne 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 36:
               let page+=1
               ^---------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 38:
               files=(${res[@]} ${files[*]})
                      ^-------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
                                ^---------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 54:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 58:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 61:
   	file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 62:
           file_type=$(echo $file|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
                            ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                            ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_type=$(echo "$file"|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 64:
   	if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]];then
                 ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                     ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                           ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ ${file_type} == "cpp" || ${file_type} == "c" || ${file_type} == "java" || ${file_type} == "py" || ${file_type} == "h" || ${file_type} == 'js' ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 68:
   	if [[ "check$file_dir" == "check${module}" ]];then
                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ "check${file_dir}" == "check${module}" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 69:
               let module_file+=1
               ^----------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 89:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 98:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 101:
   	echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 102:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 103:
   	if [[ $file_dir == "docs" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ ${file_dir} == "docs" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 104:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 106:
           if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]];then
                  ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                              ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ "${file}" =~ "docs/zh-CN/docs/sql-manual/" || "${file}" =~ "docs/en/docs/sql-manual/" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 107:
               let doc_sql_manual_num+=1
               ^-----------------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 120:
       echo "doc_num: $doc_num"
                      ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "doc_num: ${doc_num}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 121:
       echo "file_nums: $file_nums"
                        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "file_nums: ${file_nums}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 122:
       echo "doc_sql_manual_num: $doc_sql_manual_num"
                                 ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "doc_sql_manual_num: ${doc_sql_manual_num}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 123:
       if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} && ${doc_sql_manual_num} -eq 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 138:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 146:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 148:
           echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 150:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 151:
           if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "be" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 152:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 156:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 171:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 179:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 181:
           echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 183:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 184:
           if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "fe" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 185:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 189:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 200:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 203:
   	    check_removed_change_file $2 "be"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "be"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 205:
   	    check_all_change_files_is_under_be $2
                                                  ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_be "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 207:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 208:
   	    echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 209:
   	    res=`expr $check_1 \* $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    res=$(expr "$check_1" \* $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 210:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 213:
   	    check_removed_change_file $2 "fe"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "fe"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 215:
   	    check_all_change_files_is_under_fe $2
                                                  ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_fe "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 217:
               res=`expr $check_1 \* $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
               res=$(expr "$check_1" \* $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 218:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 219:
   	    echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 220:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 223:
   	    check_removed_change_file $2 "docs"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "docs"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 225:
   	    check_all_change_files_is_under_doc $2
                                                   ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_doc "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 227:
               res=`expr $check_1 + $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                    ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                    ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
               res=$(expr "$check_1" + $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 228:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 229:
               echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
               echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 230:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 238:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 6:
   echo `date "+%Y-%m-%d %H:%M:%S"` "start to clear oudate file!"
        ^-------------------------^ SC2046 (warning): Quote this to prevent word splitting.
        ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
   
   Did you mean: 
   echo $(date "+%Y-%m-%d %H:%M:%S") "start to clear oudate file!"
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 7:
   cd /home/work/teamcity/TeamCity/piplineWork/Compile/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/Compile/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 8:
   find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                         ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 9:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   ^--^ SC2103 (info): Use a ( subshell ) to avoid having to cd back.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 10:
   cd /home/work/teamcity/TeamCity/piplineWork/feUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/feUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 11:
   find /home/work/teamcity/TeamCity/piplineWork/feUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/feUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 12:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 13:
   cd /home/work/teamcity/TeamCity/piplineWork/beUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/beUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 14:
   find /home/work/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 15:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 16:
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 17:
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                         ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 18:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 19:
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 20:
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_compile.sh line 3:
   id=$(echo $RANDOM)
      ^-------------^ SC2116 (style): Useless echo? Instead of 'cmd $(echo foo)', just use 'cmd foo'.
             ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
             ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   id=$(echo "$RANDOM")
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_compile.sh line 5:
   docker run -i --rm --name doris-compile-$id -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v $work_path:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
                                           ^-^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                           ^-^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                                    ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   docker run -i --rm --name doris-compile-"$id" -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v $work_path:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 40:
       docker_name="doris-compile-"$(echo $RANDOM)
                                  ^-- SC1078 (warning): Did you forget to close this double quoted string?
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 42:
       cmd="docker run -i --rm --name doris-compile-$id -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v %system.teamcity.build.workingDir%:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
           ^-- SC1079 (info): This is actually an end quote, but due to next char it looks suspect.
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 43:
   "
   ^-- SC1073 (error): Couldn't parse this double quoted string. Fix to allow more checks.
   ^-- SC1009 (info): The mentioned syntax error was in this simple command.
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 45:
   
   ^-- SC1072 (error): Expected end of double quoted string. Fix any mentioned problems and try again.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 5:
   <<'COMMENT'
   ^---------^ SC2188 (warning): This redirection doesn't have a command. Move to its command (or use 'true' as no-op).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 145:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 147:
           --cancel_running_build) build_id=$2; cancel_running_build $build_id; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --cancel_running_build) build_id=$2; cancel_running_build "$build_id"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 148:
           --cancel_pending_build) build_id=$2; cancel_pending_build $build_id; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --cancel_pending_build) build_id=$2; cancel_pending_build "$build_id"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 149:
           --show_build_state) build_id=$2; res=$(show_build_state $build_id); echo $res; shift ;;
                                                                   ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                   ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --show_build_state) build_id=$2; res=$(show_build_state "$build_id"); echo $res; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 150:
           --show_build_status) build_id=$2; res=$(show_build_status $build_id); echo $res; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                      ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                      ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --show_build_status) build_id=$2; res=$(show_build_status "$build_id"); echo $res; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 153:
           --get_all_builds_of_pr_id) get_all_builds $2; shift ;;
                                                     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --get_all_builds_of_pr_id) get_all_builds "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 161:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 4:
   zcp_TOKEN="eyJ0eXAiOiAiVENWMiJ9.bW1DcHJpRWNCSktnREhLaHd5Y1lndmpycnJ3.NmEwM2E3YTEtMTVmYy00NGU0LWI1OTAtMzU3MzljODE0Njdk"
   ^-------^ SC2034 (warning): zcp_TOKEN appears unused. Verify use (or export if used externally).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 7:
   zcp_TEAMCITY_SERVER="http://43.129.232.36:8111"
   ^-----------------^ SC2034 (warning): zcp_TEAMCITY_SERVER appears unused. Verify use (or export if used externally).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 40:
       state=$(show_build_state $build_id)
                                ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(show_build_state "$build_id")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 41:
       if [[ $state == "running" ]];then
             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${state} == "running" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 43:
           cmd="/app/rest/builds/id:$build_id"
                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd="/app/rest/builds/id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 44:
           cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
               ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd=${cmd}" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 45:
           url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                        ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                  ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                 ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                          ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                           ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 46:
           res=$(eval $eval)
                      ^---^ SC2154 (warning): eval is referenced but not assigned (for output from commands, use "$(eval ...)" ).
                      ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=$(eval "$eval")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 47:
           check=$(echo $res |grep status="UNKNOWN")
                        ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                        ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check=$(echo "$res" |grep status="UNKNOWN")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 48:
           if [[ -z $check ]];then
                    ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ -z ${check} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 57:
       state=$(show_build_state $build_id)
                                ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(show_build_state "$build_id")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 58:
       if [[ $state == "queued" ]];then
             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${state} == "queued" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 59:
           cmd="app/rest/buildQueue/id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd="app/rest/buildQueue/id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 60:
           cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
               ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd=${cmd}" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 61:
           url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                        ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                  ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                 ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                          ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                           ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 63:
           res=$(eval $eval)
                      ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=$(eval "$eval")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 64:
           check=$(echo $res |grep status="UNKNOWN")
                        ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                        ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check=$(echo "$res" |grep status="UNKNOWN")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 65:
           if [[ -z $check ]];then
                    ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ -z ${check} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 73:
       cmd="app/rest/builds?locator=id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 74:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 76:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 79:
       check=$(echo $res|grep "<builds count=\"1\"")
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       check=$(echo "$res"|grep "<builds count=\"1\"")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 80:
       if [[ -z $check ]]; then
                ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ -z ${check} ]]; then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 84:
       state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                   ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(echo "$res" |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g')
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 86:
       echo $state
            ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "$state"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 91:
       cmd="app/rest/builds?locator=id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 92:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 94:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 96:
       check1=$(echo $res|grep "<builds count=\"1\"")
                     ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                     ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       check1=$(echo "$res"|grep "<builds count=\"1\"")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 97:
       if [[ -z $check1 ]]; then
                ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ -z ${check1} ]]; then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 105:
       state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                   ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(echo "$res" |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g')
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 107:
       echo $state
            ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "$state"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 112:
       cmd="app/rest/builds?locator=branch:$branch"
                                           ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=branch:${branch}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 113:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 114:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 119:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                           ^-^ SC2089 (warning): Quotes/backslashes will be treated literally. Use an array.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 121:
       res=eval $url
       ^-----------^ SC2209 (warning): Use var=$(command) to assign output (or quote to assign string).
                ^--^ SC2090 (warning): Quotes/backslashes in this variable will not be respected.
                ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=eval ${url}
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 126:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $JSON_HEADER $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                   ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${JSON_HEADER} ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 128:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 12:
       while [ 1 -eq 1 ]
             ^---------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                 ^-^ SC2050 (warning): This expression is constant. Did you forget the $ on a variable?
   
   Did you mean: 
       while [[ 1 -eq 1 ]]
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 15:
   	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
                ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                              ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                            ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                    ^-------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^---^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files?per_page="$per_page"\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 17:
           if [ ${res_len} -ne 0 ];then
              ^------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           if [[ "${res_len}" -ne 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 18:
   	    let page+=1
               ^---------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 20:
   	    files=(${res[@]} ${files[*]})
                      ^-------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
                                ^---------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 30:
   out=($(get_all_change_files 11154))
        ^---------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check.sh line 3:
   <<'COMMENT'
   ^---------^ SC2188 (warning): This redirection doesn't have a command. Move to its command (or use 'true' as no-op).
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 26:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 30:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 33:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 34:
           if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 35:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 46:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 60:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 65:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 68:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 69:
           if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "be" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 70:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 74:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 88:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 93:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 96:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 97:
           if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "fe" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 98:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 102:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 113:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 115:
           --is_modify_only_invoved_be) check_all_change_files_is_under_be $2; shift ;;
                                                                           ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --is_modify_only_invoved_be) check_all_change_files_is_under_be "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 116:
           --is_modify_only_invoved_fe) check_all_change_files_is_under_fe $2; shift ;;
                                                                           ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --is_modify_only_invoved_fe) check_all_change_files_is_under_fe "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 117:
   	--is_modify_only_doc) check_all_change_files_is_under_doc $2; shift ;;
                                                                     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	--is_modify_only_doc) check_all_change_files_is_under_doc "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 124:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   For more information:
     https://www.shellcheck.net/wiki/SC2068 -- Double quote array expansions to ...
     https://www.shellcheck.net/wiki/SC2071 -- > is for string comparisons. Use ...
     https://www.shellcheck.net/wiki/SC1078 -- Did you forget to close this doub...
   ----------
   
   You can address the above issues in one of three ways:
   1. Manually correct the issue in the offending shell script;
   2. Disable specific issues by adding the comment:
     # shellcheck disable=NNNN
   above the line that contains the issue, where NNNN is the error code;
   3. Add '-e NNNN' to the SHELLCHECK_OPTS setting in your .yml action file.
   
   
   
   ```
   </details>
   
   <details>
   <summary>shfmt errors</summary>
   
   ```
   
   'shfmt ' returned error 1 finding the following formatting issues:
   
   ----------
   --- teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh
   @@ -8,23 +8,22 @@
    echo "===================================="
    echo "START TO DETECT RESIDUAL PROCESSES!"
    
   -check=$(lsof -i:$port|awk '{print $2}'|wc -l)
   -if [ "check$check" != "check0" ];then
   -    if [ "check"${case_level} == "check" ];then
   -        check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep deleted||wc -l)
   +check=$(lsof -i:$port | awk '{print $2}' | wc -l)
   +if [ "check$check" != "check0" ]; then
   +    if [ "check"${case_level} == "check" ]; then
   +        check_res=$(pwdx $(lsof -i:$port | grep -v PID | awk '{print $2}') | grep $env_name | grep deleted || wc -l)
        else
   -        check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep $case_level|grep deleted||wc -l)
   +        check_res=$(pwdx $(lsof -i:$port | grep -v PID | awk '{print $2}') | grep $env_name | grep $case_level | grep deleted || wc -l)
        fi
   -    if [ "check$check_res" != "check0" ];then
   -        be_pid=(`lsof -i:$port|grep -v PID|awk '{print $2}'`)
   +    if [ "check$check_res" != "check0" ]; then
   +        be_pid=($(lsof -i:$port | grep -v PID | awk '{print $2}'))
            echo "Detected residual processes: ${be_pid}"
            echo "kill residual processes: kill -9 ${be_pid}"
            kill -9 $be_pid
        fi
    else
   -        echo "No residual processes"
   +    echo "No residual processes"
    fi
    
   -
    echo "FINISH DETECT RESIDUAL PROCESSES!"
    echo "==================================="
   --- teamcity/doris/benchmark/clickbench/common/check_change_file.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/check_change_file.sh
   @@ -7,7 +7,7 @@
    GITHUB_TOKEN=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
    
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
    
   @@ -16,23 +16,21 @@
        $0 --is_modify_only_invoved_fe pr_id          if pr changed code only invoved fe doc, fs_brocker, return 0; else return 2
        $0 --is_modify_only_invoved_doc pr_id         if pr changed code only invoved doc, fs_brocker, return 0; else return 2
      "
   -  exit 1
   +    exit 1
    }
    
   -
   -function get_all_change_files(){
   +function get_all_change_files() {
        pr_id=$1
        files=()
    
        page=1
        per_page=100
   -    while [ 1 -eq 1 ]
   -    do
   +    while [ 1 -eq 1 ]; do
            #echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   -        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   +        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page | jq -r '.[]|select(.status = "removed")| .filename'))
            res_len=${#res[@]}
            #echo "================"$res_len
   -        if [ ${res_len} -ne 0 ];then
   +        if [ ${res_len} -ne 0 ]; then
                let page+=1
                #files="${res[@]}""$files"
                files=(${res[@]} ${files[*]})
   @@ -44,8 +42,7 @@
        echo "${files[@]}"
    }
    
   -
   -function check_removed_change_file(){
   +function check_removed_change_file() {
        pr_id=$1
        module=$2
        owner='apache'
   @@ -55,26 +52,25 @@
        file_nums=${#res[@]}
        is_code_change_flag=false
        module_file=0
   -    for file in ${res[@]}
   -    do
   -	#echo "$file"
   -	file_dir=$(echo $file|cut -d '/' -f 1)
   -        file_type=$(echo $file|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
   -	#if [[  "check$file_dir" == "check${module}" &&  ($file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js') ]];then
   -	if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]];then
   -	    echo "code has changed, ${file} is deleted"
   -	    is_code_change_flag=true
   -	fi
   -	if [[ "check$file_dir" == "check${module}" ]];then
   +    for file in ${res[@]}; do
   +        #echo "$file"
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        file_type=$(echo $file | rev | cut -d / -f 1 | cut -d '.' -f 1 | rev)
   +        #if [[  "check$file_dir" == "check${module}" &&  ($file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js') ]];then
   +        if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]]; then
   +            echo "code has changed, ${file} is deleted"
   +            is_code_change_flag=true
   +        fi
   +        if [[ "check$file_dir" == "check${module}" ]]; then
                let module_file+=1
   -	fi
   +        fi
        done
    
   -    if [[ "${is_code_change_flag}" == "false" ]];then
   -	echo "NO CODE FILE DELETED, PASSED!"
   +    if [[ "${is_code_change_flag}" == "false" ]]; then
   +        echo "NO CODE FILE DELETED, PASSED!"
            return 0
        else
   -	echo "CODE FILE BE DELETED"
   +        echo "CODE FILE BE DELETED"
            return 2
        fi
    
   @@ -95,20 +91,18 @@
    
        doc_num=0
        doc_sql_manual_num=0
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on docs/fs_brokers or not
   -	echo "$file"
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -	if [[ $file_dir == "docs" ]];then
   +        echo "$file"
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "docs" ]]; then
                let doc_num+=1
   -	fi
   -        if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]];then
   +        fi
   +        if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]]; then
                let doc_sql_manual_num+=1
                continue
            fi
    
   -
            #check change file is md/txt/doc file
            #file_type=$(echo $file|cut -d '.' -f 2)
            #if [[ $file_type == "md" || $file_type == "txt" || $file_type == "doc" ]];then
   @@ -120,7 +114,7 @@
        echo "doc_num: $doc_num"
        echo "file_nums: $file_nums"
        echo "doc_sql_manual_num: $doc_sql_manual_num"
   -    if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]];then
   +    if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]]; then
            echo "JUST MODIFY DOCUMENT, NO COED CHSNGED, PASSED!"
            return 0
        else
   @@ -143,17 +137,16 @@
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED BE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            echo "$file"
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
   -	fi
   +        fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY BE CODE, NO NEED RUN FE UT, PASSED!"
            return 0
        else
   @@ -176,17 +169,16 @@
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED FE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            echo "$file"
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY FE CODE, NO NEED RUN BE UT, PASSED!"
            return 0
        else
   @@ -197,42 +189,49 @@
    
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in
   +    if [ $# ] >0; then
   +        case "$1" in
            --is_modify_only_invoved_be)
   -	    check_removed_change_file $2 "be"
   -	    check_1=$?
   -	    check_all_change_files_is_under_be $2
   -	    check_2=$?
   -	    echo ${check_1}
   -	    echo ${check_2}
   -	    res=`expr $check_1 \* $check_2`
   -	    exit $res
   -	    shift ;;
   +            check_removed_change_file $2 "be"
   +            check_1=$?
   +            check_all_change_files_is_under_be $2
   +            check_2=$?
   +            echo ${check_1}
   +            echo ${check_2}
   +            res=$(expr $check_1 \* $check_2)
   +            exit $res
   +            shift
   +            ;;
            --is_modify_only_invoved_fe)
   -	    check_removed_change_file $2 "fe"
   -	    check_1=$?
   -	    check_all_change_files_is_under_fe $2
   -	    check_2=$?
   -            res=`expr $check_1 \* $check_2`
   -	    echo ${check_1}
   -	    echo ${check_2}
   -	    exit $res
   -	    shift ;;
   -	--is_modify_only_invoved_doc)
   -	    check_removed_change_file $2 "docs"
   -	    check_1=$?
   -	    check_all_change_files_is_under_doc $2
   -	    check_2=$?
   -            res=`expr $check_1 + $check_2`
   -	    echo ${check_1}
   +            check_removed_change_file $2 "fe"
   +            check_1=$?
   +            check_all_change_files_is_under_fe $2
   +            check_2=$?
   +            res=$(expr $check_1 \* $check_2)
   +            echo ${check_1}
                echo ${check_2}
   -	    exit $res
   -	    shift ;;
   -        *) echo "ERROR"; usage; exit 1 ;;
   -    esac
   +            exit $res
   +            shift
   +            ;;
   +        --is_modify_only_invoved_doc)
   +            check_removed_change_file $2 "docs"
   +            check_1=$?
   +            check_all_change_files_is_under_doc $2
   +            check_2=$?
   +            res=$(expr $check_1 + $check_2)
   +            echo ${check_1}
   +            echo ${check_2}
   +            exit $res
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            usage
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/common/clean_disk.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/clean_disk.sh
   @@ -3,7 +3,7 @@
    df -h
    existsTime=720
    #delete files created 20 hours ago
   -echo `date "+%Y-%m-%d %H:%M:%S"` "start to clear oudate file!"
   +echo $(date "+%Y-%m-%d %H:%M:%S") "start to clear oudate file!"
    cd /home/work/teamcity/TeamCity/piplineWork/Compile/
    find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
    cd -
   teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh:43:1: reached EOF without closing quote "
   --- teamcity/doris/benchmark/clickbench/common/teamcity_api.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/teamcity_api.sh
   @@ -139,23 +139,55 @@
    }
    COMMENT
    
   -
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in 
   -        --cancel_running_build) build_id=$2; cancel_running_build $build_id; shift ;;
   -        --cancel_pending_build) build_id=$2; cancel_pending_build $build_id; shift ;;
   -        --show_build_state) build_id=$2; res=$(show_build_state $build_id); echo $res; shift ;;
   -        --show_build_status) build_id=$2; res=$(show_build_status $build_id); echo $res; shift ;;
   -        --show_latest_builds) get_latest_builds; shift ;;
   -        --show_queued_builds) get_queued_builds; shift ;;
   -        --get_all_builds_of_pr_id) get_all_builds $2; shift ;;
   -	--help) usage; shift ;;
   -        *) echo "ERROR"; exit 1 ;;
   -    esac
   +    if [ $# ] >0; then
   +        case "$1" in
   +        --cancel_running_build)
   +            build_id=$2
   +            cancel_running_build $build_id
   +            shift
   +            ;;
   +        --cancel_pending_build)
   +            build_id=$2
   +            cancel_pending_build $build_id
   +            shift
   +            ;;
   +        --show_build_state)
   +            build_id=$2
   +            res=$(show_build_state $build_id)
   +            echo $res
   +            shift
   +            ;;
   +        --show_build_status)
   +            build_id=$2
   +            res=$(show_build_status $build_id)
   +            echo $res
   +            shift
   +            ;;
   +        --show_latest_builds)
   +            get_latest_builds
   +            shift
   +            ;;
   +        --show_queued_builds)
   +            get_queued_builds
   +            shift
   +            ;;
   +        --get_all_builds_of_pr_id)
   +            get_all_builds $2
   +            shift
   +            ;;
   +        --help)
   +            usage
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/common/teamcity_common.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/teamcity_common.sh
   @@ -11,7 +11,7 @@
    JSON_HEADER="--header \"Accept: application/json\""
    
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
         --cancel_running_build build_id    cancel a specific running build
   @@ -32,21 +32,21 @@
        $0 --show_queued_builds             show all queued builds
        $0 --get_all_builds_of_pr_id 9151   get all 9151 builds
      "
   -  exit 1
   +    exit 1
    }
    
    cancel_running_build() {
        build_id=$1
        state=$(show_build_state $build_id)
   -    if [[ $state == "running" ]];then
   +    if [[ $state == "running" ]]; then
            #curl --header "Authorization: Bearer eyJ0eXAiOiAiVENWMiJ9.bW1DcHJpRWNCSktnREhLaHd5Y1lndmpycnJ3.NmEwM2E3YTEtMTVmYy00NGU0LWI1OTAtMzU3MzljODE0Njdk" http://43.129.232.36:8111/app/rest/builds/id:333 -X POST -H 'Content-Type: application/json' -d '{ "buildCancelRequest": {       "comment": "Already running builds will be stopped.",      "readdIntoQueue": "false"    }  }'
            cmd="/app/rest/builds/id:$build_id"
            cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
            url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
            res=$(eval $eval)
   -        check=$(echo $res |grep status="UNKNOWN")
   -        if [[ -z $check ]];then
   -           echo "cancel fail!"
   +        check=$(echo $res | grep status="UNKNOWN")
   +        if [[ -z $check ]]; then
   +            echo "cancel fail!"
            fi
        fi
    
   @@ -55,15 +55,15 @@
    cancel_pending_build() {
        build_id=$1
        state=$(show_build_state $build_id)
   -    if [[ $state == "queued" ]];then
   +    if [[ $state == "queued" ]]; then
            cmd="app/rest/buildQueue/id:$build_id"
            cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
            url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
            #echo $url
            res=$(eval $eval)
   -        check=$(echo $res |grep status="UNKNOWN")
   -        if [[ -z $check ]];then
   -           echo "cancel fail!"
   +        check=$(echo $res | grep status="UNKNOWN")
   +        if [[ -z $check ]]; then
   +            echo "cancel fail!"
            fi
        fi
    }
   @@ -73,15 +73,15 @@
        cmd="app/rest/builds?locator=id:$build_id"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   -    
   +    res=$(eval $url)
   +
        #check build exist or not
   -    check=$(echo $res|grep "<builds count=\"1\"")
   +    check=$(echo $res | grep "<builds count=\"1\"")
        if [[ -z $check ]]; then
            return
        fi
        #get state
   -    state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
   +    state=$(echo $res | awk -F ' ' '{print $9" "$10" "$11}' | awk -F "state=" '{print $2}' | cut -d ' ' -f 1 | sed 's/\"//g')
        #only 2 state: queued and finished
        echo $state
    }
   @@ -91,9 +91,9 @@
        cmd="app/rest/builds?locator=id:$build_id"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   +    res=$(eval $url)
        #check build exist or not
   -    check1=$(echo $res|grep "<builds count=\"1\"")
   +    check1=$(echo $res | grep "<builds count=\"1\"")
        if [[ -z $check1 ]]; then
            return
        fi
   @@ -102,8 +102,8 @@
        #if [[ -z $check ]]; then
        #    return
        #fi
   -    state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
   -    #only 2 state: 
   +    state=$(echo $res | awk -F ' ' '{print $9" "$10" "$11}' | awk -F "status=" '{print $2}' | cut -d ' ' -f 1 | sed 's/\"//g')
   +    #only 2 state:
        echo $state
    }
    
   @@ -111,7 +111,7 @@
        branch=$1
        cmd="app/rest/builds?locator=branch:$branch"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
   -    res=`eval $url`
   +    res=$(eval $url)
    }
    
    get_latest_builds() {
   @@ -125,14 +125,12 @@
        cmd="app/rest/buildQueue"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $JSON_HEADER $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   +    res=$(eval $url)
        #a=$(echo $res|grep -oP 'build id=.*'|head -1)
   -    
   -    
   +
        #a=$res
        #while [[ "check"$a != "check" ]]
        #do
        #    a=$(echo $a|awk -F 'build id="' '{print $2}')
        #done
    }
   -
   --- teamcity/doris/benchmark/clickbench/common/test.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/test.sh
   @@ -3,33 +3,29 @@
    repo=doris
    GITHUB_TOKEN=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
    
   -function get_all_change_files(){
   +function get_all_change_files() {
        pr_id=$1
        files=()
    
        page=1
        per_page=100
   -    while [ 1 -eq 1 ]
   -    do
   -	#echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   -	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   +    while [ 1 -eq 1 ]; do
   +        #echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   +        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page | jq -r '.[]|select(.status = "removed")| .filename'))
            res_len=${#res[@]}
   -        if [ ${res_len} -ne 0 ];then
   -	    let page+=1
   +        if [ ${res_len} -ne 0 ]; then
   +            let page+=1
                #files="${res[@]}""$files"
   -	    files=(${res[@]} ${files[*]})
   +            files=(${res[@]} ${files[*]})
            else
                break
            fi
   -	echo 
   +        echo
        done
        echo "${files[@]}"
    }
    
   -
    out=($(get_all_change_files 11154))
    
   -
   -
    echo "=================="
    echo "${out[@]}"
   --- teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh
   @@ -3,9 +3,8 @@
    #res=(`git diff --name-only HEAD~ HEAD`)
    #file_nums=${#res[@]}
    
   -
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
    
   @@ -14,24 +13,22 @@
        $0 --is_modify_only_invoved_fe pr_id          if pr changed code only invoved fe doc, fs_brocker, return 0; else return 2
        $0 --is_modify_only_invoved_doc pr_id         if pr changed code only invoved doc, fs_brocker, return 0; else return 2
      "
   -  exit 1
   +    exit 1
    }
    
   -
    function check_all_change_files_is_under_doc() {
    
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on docs/fs_brokers or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
   @@ -43,7 +40,7 @@
            #fi
        done
    
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY DOCUMENT, NO COED CHSNGED, PASSED!"
            exit 0
        else
   @@ -57,21 +54,20 @@
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED BE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
   -	fi
   +        fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY BE CODE, NO NEED RUN FE UT, PASSED!"
            exit 0
        else
   @@ -85,21 +81,20 @@
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED FE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY FE CODE, NO NEED RUN BE UT, PASSED!"
            exit 0
        else
   @@ -110,15 +105,28 @@
    
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in
   -        --is_modify_only_invoved_be) check_all_change_files_is_under_be $2; shift ;;
   -        --is_modify_only_invoved_fe) check_all_change_files_is_under_fe $2; shift ;;
   -	--is_modify_only_doc) check_all_change_files_is_under_doc $2; shift ;;
   -        *) echo "ERROR"; usage; exit 1 ;;
   -    esac
   +    if [ $# ] >0; then
   +        case "$1" in
   +        --is_modify_only_invoved_be)
   +            check_all_change_files_is_under_be $2
   +            shift
   +            ;;
   +        --is_modify_only_invoved_fe)
   +            check_all_change_files_is_under_fe $2
   +            shift
   +            ;;
   +        --is_modify_only_doc)
   +            check_all_change_files_is_under_doc $2
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            usage
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/prepare.sh.orig
   +++ teamcity/doris/benchmark/clickbench/prepare.sh
   @@ -22,4 +22,3 @@
    fi
    qa_home="${pipeline_home}/selectdb-qa"
    cd "${qa_home}" && git stash && git checkout main && git pull && cd -
   -
   ----------
   
   You can reformat the above files to meet shfmt's requirements by typing:
   
     shfmt  -w filename
   
   
   ```
   </details>
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] hello-stephen commented on pull request #13259: test benchmark pipeline

Posted by GitBox <gi...@apache.org>.
hello-stephen commented on PR #13259:
URL: https://github.com/apache/doris/pull/13259#issuecomment-1280397741

   TeamCity pipeline, clickbench performance test result:
   total run time:    30.2s
   load time:           520s
   storage size:      17123069872 Bytes
   https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/clickbench_pr_29174.html


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] hello-stephen commented on pull request #13259: test benchmark pipeline

Posted by GitBox <gi...@apache.org>.
hello-stephen commented on PR #13259:
URL: https://github.com/apache/doris/pull/13259#issuecomment-1278425223

   test comment


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] hello-stephen commented on pull request #13259: test benchmark pipeline

Posted by GitBox <gi...@apache.org>.
hello-stephen commented on PR #13259:
URL: https://github.com/apache/doris/pull/13259#issuecomment-1280416096

   TeamCity pipeline, clickbench performance test result:
    total run time: 30.2 s 
    load time: 123 s 
    storage size: 112211221122 Bytes 
    https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] hello-stephen commented on pull request #13259: test benchmark pipeline

Posted by GitBox <gi...@apache.org>.
hello-stephen commented on PR #13259:
URL: https://github.com/apache/doris/pull/13259#issuecomment-1278496393

   https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/clickbench_pr_29133.html


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] hello-stephen commented on pull request #13259: test benchmark pipeline

Posted by GitBox <gi...@apache.org>.
hello-stephen commented on PR #13259:
URL: https://github.com/apache/doris/pull/13259#issuecomment-1280414002

   TeamCity


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] hello-stephen commented on pull request #13259: test benchmark pipeline

Posted by GitBox <gi...@apache.org>.
hello-stephen commented on PR #13259:
URL: https://github.com/apache/doris/pull/13259#issuecomment-1295718863

   TeamCity pipeline, clickbench performance test result:
    update update


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] github-actions[bot] commented on pull request #13259: test benchmark pipeline

Posted by GitBox <gi...@apache.org>.
github-actions[bot] commented on PR #13259:
URL: https://github.com/apache/doris/pull/13259#issuecomment-1301619387

   #### `sh-checker report`
   
   To get the full details, please check in the [job]("https://github.com/apache/doris/actions/runs/3382940915") output.
   
   <details>
   <summary>shellcheck errors</summary>
   
   ```
   
   'shellcheck ' returned error 1 finding the following syntactical issues:
   
   ----------
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 11:
   check=$(lsof -i:$port|awk '{print $2}'|wc -l)
                   ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   check=$(lsof -i:"$port"|awk '{print $2}'|wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 12:
   if [ "check$check" != "check0" ];then
      ^---------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
              ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   if [[ "check${check}" != "check0" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 13:
       if [ "check"${case_level} == "check" ];then
          ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                   ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       if [[ "check""${case_level}" == "check" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 14:
           check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep deleted||wc -l)
                            ^-- SC2046 (warning): Quote this to prevent word splitting.
                            ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                     ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                     ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                              ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                              ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check_res=$(pwdx $(lsof -i:"$port"|grep -v PID|awk '{print $2}')|grep $env_name|grep deleted||wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 16:
           check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep $case_level|grep deleted||wc -l)
                            ^-- SC2046 (warning): Quote this to prevent word splitting.
                            ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                     ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                     ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                              ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                              ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                             ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                             ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check_res=$(pwdx $(lsof -i:"$port"|grep -v PID|awk '{print $2}')|grep $env_name|grep $case_level|grep deleted||wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 18:
       if [ "check$check_res" != "check0" ];then
          ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                  ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ "check${check_res}" != "check0" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 19:
           be_pid=(`lsof -i:$port|grep -v PID|awk '{print $2}'`)
                   ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                   ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                            ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                            ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           be_pid=($(lsof -i:"$port"|grep -v PID|awk '{print $2}'))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 20:
           echo "Detected residual processes: ${be_pid}"
                                              ^-------^ SC2128 (warning): Expanding an array without an index only gives the first element.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 21:
           echo "kill residual processes: kill -9 ${be_pid}"
                                                  ^-------^ SC2128 (warning): Expanding an array without an index only gives the first element.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 22:
           kill -9 $be_pid
                   ^-----^ SC2128 (warning): Expanding an array without an index only gives the first element.
                   ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           kill -9 "$be_pid"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 29:
       while [ 1 -eq 1 ]
             ^---------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                 ^-^ SC2050 (warning): This expression is constant. Did you forget the $ on a variable?
   
   Did you mean: 
       while [[ 1 -eq 1 ]]
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 32:
           res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
                ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                              ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                            ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                    ^-------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^---^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files?per_page="$per_page"\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 35:
           if [ ${res_len} -ne 0 ];then
              ^------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           if [[ "${res_len}" -ne 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 36:
               let page+=1
               ^---------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 38:
               files=(${res[@]} ${files[*]})
                      ^-------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
                                ^---------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 54:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 58:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 61:
   	file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 62:
           file_type=$(echo $file|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
                            ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                            ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_type=$(echo "$file"|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 64:
   	if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]];then
                 ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                     ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                           ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ ${file_type} == "cpp" || ${file_type} == "c" || ${file_type} == "java" || ${file_type} == "py" || ${file_type} == "h" || ${file_type} == 'js' ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 68:
   	if [[ "check$file_dir" == "check${module}" ]];then
                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ "check${file_dir}" == "check${module}" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 69:
               let module_file+=1
               ^----------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 89:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 98:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 101:
   	echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 102:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 103:
   	if [[ $file_dir == "docs" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ ${file_dir} == "docs" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 104:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 106:
           if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]];then
                  ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                              ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ "${file}" =~ "docs/zh-CN/docs/sql-manual/" || "${file}" =~ "docs/en/docs/sql-manual/" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 107:
               let doc_sql_manual_num+=1
               ^-----------------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 120:
       echo "doc_num: $doc_num"
                      ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "doc_num: ${doc_num}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 121:
       echo "file_nums: $file_nums"
                        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "file_nums: ${file_nums}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 122:
       echo "doc_sql_manual_num: $doc_sql_manual_num"
                                 ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "doc_sql_manual_num: ${doc_sql_manual_num}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 123:
       if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} && ${doc_sql_manual_num} -eq 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 138:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 146:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 148:
           echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 150:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 151:
           if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "be" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 152:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 156:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 171:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 179:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 181:
           echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 183:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 184:
           if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "fe" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 185:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 189:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 200:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 203:
   	    check_removed_change_file $2 "be"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "be"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 205:
   	    check_all_change_files_is_under_be $2
                                                  ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_be "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 207:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 208:
   	    echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 209:
   	    res=`expr $check_1 \* $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    res=$(expr "$check_1" \* $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 210:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 213:
   	    check_removed_change_file $2 "fe"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "fe"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 215:
   	    check_all_change_files_is_under_fe $2
                                                  ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_fe "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 217:
               res=`expr $check_1 \* $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
               res=$(expr "$check_1" \* $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 218:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 219:
   	    echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 220:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 223:
   	    check_removed_change_file $2 "docs"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "docs"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 225:
   	    check_all_change_files_is_under_doc $2
                                                   ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_doc "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 227:
               res=`expr $check_1 + $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                    ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                    ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
               res=$(expr "$check_1" + $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 228:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 229:
               echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
               echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 230:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 238:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 6:
   echo `date "+%Y-%m-%d %H:%M:%S"` "start to clear oudate file!"
        ^-------------------------^ SC2046 (warning): Quote this to prevent word splitting.
        ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
   
   Did you mean: 
   echo $(date "+%Y-%m-%d %H:%M:%S") "start to clear oudate file!"
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 7:
   cd /home/work/teamcity/TeamCity/piplineWork/Compile/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/Compile/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 8:
   find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                         ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 9:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   ^--^ SC2103 (info): Use a ( subshell ) to avoid having to cd back.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 10:
   cd /home/work/teamcity/TeamCity/piplineWork/feUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/feUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 11:
   find /home/work/teamcity/TeamCity/piplineWork/feUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/feUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 12:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 13:
   cd /home/work/teamcity/TeamCity/piplineWork/beUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/beUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 14:
   find /home/work/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 15:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 16:
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 17:
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                         ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 18:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 19:
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 20:
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_compile.sh line 3:
   id=$(echo $RANDOM)
      ^-------------^ SC2116 (style): Useless echo? Instead of 'cmd $(echo foo)', just use 'cmd foo'.
             ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
             ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   id=$(echo "$RANDOM")
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_compile.sh line 5:
   docker run -i --rm --name doris-compile-$id -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v $work_path:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
                                           ^-^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                           ^-^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                                    ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   docker run -i --rm --name doris-compile-"$id" -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v $work_path:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 40:
       docker_name="doris-compile-"$(echo $RANDOM)
                                  ^-- SC1078 (warning): Did you forget to close this double quoted string?
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 42:
       cmd="docker run -i --rm --name doris-compile-$id -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v %system.teamcity.build.workingDir%:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
           ^-- SC1079 (info): This is actually an end quote, but due to next char it looks suspect.
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 43:
   "
   ^-- SC1073 (error): Couldn't parse this double quoted string. Fix to allow more checks.
   ^-- SC1009 (info): The mentioned syntax error was in this simple command.
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 45:
   
   ^-- SC1072 (error): Expected end of double quoted string. Fix any mentioned problems and try again.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 5:
   <<'COMMENT'
   ^---------^ SC2188 (warning): This redirection doesn't have a command. Move to its command (or use 'true' as no-op).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 145:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 147:
           --cancel_running_build) build_id=$2; cancel_running_build $build_id; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --cancel_running_build) build_id=$2; cancel_running_build "$build_id"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 148:
           --cancel_pending_build) build_id=$2; cancel_pending_build $build_id; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --cancel_pending_build) build_id=$2; cancel_pending_build "$build_id"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 149:
           --show_build_state) build_id=$2; res=$(show_build_state $build_id); echo $res; shift ;;
                                                                   ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                   ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --show_build_state) build_id=$2; res=$(show_build_state "$build_id"); echo $res; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 150:
           --show_build_status) build_id=$2; res=$(show_build_status $build_id); echo $res; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                      ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                      ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --show_build_status) build_id=$2; res=$(show_build_status "$build_id"); echo $res; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 153:
           --get_all_builds_of_pr_id) get_all_builds $2; shift ;;
                                                     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --get_all_builds_of_pr_id) get_all_builds "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 161:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 4:
   zcp_TOKEN="eyJ0eXAiOiAiVENWMiJ9.bW1DcHJpRWNCSktnREhLaHd5Y1lndmpycnJ3.NmEwM2E3YTEtMTVmYy00NGU0LWI1OTAtMzU3MzljODE0Njdk"
   ^-------^ SC2034 (warning): zcp_TOKEN appears unused. Verify use (or export if used externally).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 7:
   zcp_TEAMCITY_SERVER="http://43.129.232.36:8111"
   ^-----------------^ SC2034 (warning): zcp_TEAMCITY_SERVER appears unused. Verify use (or export if used externally).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 40:
       state=$(show_build_state $build_id)
                                ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(show_build_state "$build_id")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 41:
       if [[ $state == "running" ]];then
             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${state} == "running" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 43:
           cmd="/app/rest/builds/id:$build_id"
                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd="/app/rest/builds/id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 44:
           cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
               ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd=${cmd}" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 45:
           url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                        ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                  ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                 ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                          ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                           ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 46:
           res=$(eval $eval)
                      ^---^ SC2154 (warning): eval is referenced but not assigned (for output from commands, use "$(eval ...)" ).
                      ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=$(eval "$eval")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 47:
           check=$(echo $res |grep status="UNKNOWN")
                        ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                        ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check=$(echo "$res" |grep status="UNKNOWN")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 48:
           if [[ -z $check ]];then
                    ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ -z ${check} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 57:
       state=$(show_build_state $build_id)
                                ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(show_build_state "$build_id")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 58:
       if [[ $state == "queued" ]];then
             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${state} == "queued" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 59:
           cmd="app/rest/buildQueue/id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd="app/rest/buildQueue/id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 60:
           cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
               ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd=${cmd}" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 61:
           url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                        ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                  ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                 ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                          ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                           ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 63:
           res=$(eval $eval)
                      ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=$(eval "$eval")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 64:
           check=$(echo $res |grep status="UNKNOWN")
                        ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                        ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check=$(echo "$res" |grep status="UNKNOWN")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 65:
           if [[ -z $check ]];then
                    ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ -z ${check} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 73:
       cmd="app/rest/builds?locator=id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 74:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 76:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 79:
       check=$(echo $res|grep "<builds count=\"1\"")
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       check=$(echo "$res"|grep "<builds count=\"1\"")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 80:
       if [[ -z $check ]]; then
                ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ -z ${check} ]]; then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 84:
       state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                   ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(echo "$res" |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g')
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 86:
       echo $state
            ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "$state"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 91:
       cmd="app/rest/builds?locator=id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 92:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 94:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 96:
       check1=$(echo $res|grep "<builds count=\"1\"")
                     ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                     ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       check1=$(echo "$res"|grep "<builds count=\"1\"")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 97:
       if [[ -z $check1 ]]; then
                ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ -z ${check1} ]]; then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 105:
       state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                   ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(echo "$res" |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g')
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 107:
       echo $state
            ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "$state"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 112:
       cmd="app/rest/builds?locator=branch:$branch"
                                           ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=branch:${branch}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 113:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 114:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 119:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                           ^-^ SC2089 (warning): Quotes/backslashes will be treated literally. Use an array.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 121:
       res=eval $url
       ^-----------^ SC2209 (warning): Use var=$(command) to assign output (or quote to assign string).
                ^--^ SC2090 (warning): Quotes/backslashes in this variable will not be respected.
                ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=eval ${url}
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 126:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $JSON_HEADER $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                   ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${JSON_HEADER} ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 128:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 12:
       while [ 1 -eq 1 ]
             ^---------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                 ^-^ SC2050 (warning): This expression is constant. Did you forget the $ on a variable?
   
   Did you mean: 
       while [[ 1 -eq 1 ]]
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 15:
   	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
                ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                              ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                            ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                    ^-------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^---^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files?per_page="$per_page"\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 17:
           if [ ${res_len} -ne 0 ];then
              ^------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           if [[ "${res_len}" -ne 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 18:
   	    let page+=1
               ^---------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 20:
   	    files=(${res[@]} ${files[*]})
                      ^-------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
                                ^---------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 30:
   out=($(get_all_change_files 11154))
        ^---------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check.sh line 3:
   <<'COMMENT'
   ^---------^ SC2188 (warning): This redirection doesn't have a command. Move to its command (or use 'true' as no-op).
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 26:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 30:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 33:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 34:
           if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 35:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 46:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 60:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 65:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 68:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 69:
           if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "be" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 70:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 74:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 88:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 93:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 96:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 97:
           if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "fe" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 98:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 102:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 113:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 115:
           --is_modify_only_invoved_be) check_all_change_files_is_under_be $2; shift ;;
                                                                           ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --is_modify_only_invoved_be) check_all_change_files_is_under_be "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 116:
           --is_modify_only_invoved_fe) check_all_change_files_is_under_fe $2; shift ;;
                                                                           ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --is_modify_only_invoved_fe) check_all_change_files_is_under_fe "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 117:
   	--is_modify_only_doc) check_all_change_files_is_under_doc $2; shift ;;
                                                                     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	--is_modify_only_doc) check_all_change_files_is_under_doc "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 124:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   For more information:
     https://www.shellcheck.net/wiki/SC2068 -- Double quote array expansions to ...
     https://www.shellcheck.net/wiki/SC2071 -- > is for string comparisons. Use ...
     https://www.shellcheck.net/wiki/SC1078 -- Did you forget to close this doub...
   ----------
   
   You can address the above issues in one of three ways:
   1. Manually correct the issue in the offending shell script;
   2. Disable specific issues by adding the comment:
     # shellcheck disable=NNNN
   above the line that contains the issue, where NNNN is the error code;
   3. Add '-e NNNN' to the SHELLCHECK_OPTS setting in your .yml action file.
   
   
   
   ```
   </details>
   
   <details>
   <summary>shfmt errors</summary>
   
   ```
   
   'shfmt ' returned error 1 finding the following formatting issues:
   
   ----------
   --- teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh
   @@ -8,23 +8,22 @@
    echo "===================================="
    echo "START TO DETECT RESIDUAL PROCESSES!"
    
   -check=$(lsof -i:$port|awk '{print $2}'|wc -l)
   -if [ "check$check" != "check0" ];then
   -    if [ "check"${case_level} == "check" ];then
   -        check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep deleted||wc -l)
   +check=$(lsof -i:$port | awk '{print $2}' | wc -l)
   +if [ "check$check" != "check0" ]; then
   +    if [ "check"${case_level} == "check" ]; then
   +        check_res=$(pwdx $(lsof -i:$port | grep -v PID | awk '{print $2}') | grep $env_name | grep deleted || wc -l)
        else
   -        check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep $case_level|grep deleted||wc -l)
   +        check_res=$(pwdx $(lsof -i:$port | grep -v PID | awk '{print $2}') | grep $env_name | grep $case_level | grep deleted || wc -l)
        fi
   -    if [ "check$check_res" != "check0" ];then
   -        be_pid=(`lsof -i:$port|grep -v PID|awk '{print $2}'`)
   +    if [ "check$check_res" != "check0" ]; then
   +        be_pid=($(lsof -i:$port | grep -v PID | awk '{print $2}'))
            echo "Detected residual processes: ${be_pid}"
            echo "kill residual processes: kill -9 ${be_pid}"
            kill -9 $be_pid
        fi
    else
   -        echo "No residual processes"
   +    echo "No residual processes"
    fi
    
   -
    echo "FINISH DETECT RESIDUAL PROCESSES!"
    echo "==================================="
   --- teamcity/doris/benchmark/clickbench/common/check_change_file.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/check_change_file.sh
   @@ -7,7 +7,7 @@
    GITHUB_TOKEN=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
    
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
    
   @@ -16,23 +16,21 @@
        $0 --is_modify_only_invoved_fe pr_id          if pr changed code only invoved fe doc, fs_brocker, return 0; else return 2
        $0 --is_modify_only_invoved_doc pr_id         if pr changed code only invoved doc, fs_brocker, return 0; else return 2
      "
   -  exit 1
   +    exit 1
    }
    
   -
   -function get_all_change_files(){
   +function get_all_change_files() {
        pr_id=$1
        files=()
    
        page=1
        per_page=100
   -    while [ 1 -eq 1 ]
   -    do
   +    while [ 1 -eq 1 ]; do
            #echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   -        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   +        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page | jq -r '.[]|select(.status = "removed")| .filename'))
            res_len=${#res[@]}
            #echo "================"$res_len
   -        if [ ${res_len} -ne 0 ];then
   +        if [ ${res_len} -ne 0 ]; then
                let page+=1
                #files="${res[@]}""$files"
                files=(${res[@]} ${files[*]})
   @@ -44,8 +42,7 @@
        echo "${files[@]}"
    }
    
   -
   -function check_removed_change_file(){
   +function check_removed_change_file() {
        pr_id=$1
        module=$2
        owner='apache'
   @@ -55,26 +52,25 @@
        file_nums=${#res[@]}
        is_code_change_flag=false
        module_file=0
   -    for file in ${res[@]}
   -    do
   -	#echo "$file"
   -	file_dir=$(echo $file|cut -d '/' -f 1)
   -        file_type=$(echo $file|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
   -	#if [[  "check$file_dir" == "check${module}" &&  ($file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js') ]];then
   -	if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]];then
   -	    echo "code has changed, ${file} is deleted"
   -	    is_code_change_flag=true
   -	fi
   -	if [[ "check$file_dir" == "check${module}" ]];then
   +    for file in ${res[@]}; do
   +        #echo "$file"
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        file_type=$(echo $file | rev | cut -d / -f 1 | cut -d '.' -f 1 | rev)
   +        #if [[  "check$file_dir" == "check${module}" &&  ($file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js') ]];then
   +        if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]]; then
   +            echo "code has changed, ${file} is deleted"
   +            is_code_change_flag=true
   +        fi
   +        if [[ "check$file_dir" == "check${module}" ]]; then
                let module_file+=1
   -	fi
   +        fi
        done
    
   -    if [[ "${is_code_change_flag}" == "false" ]];then
   -	echo "NO CODE FILE DELETED, PASSED!"
   +    if [[ "${is_code_change_flag}" == "false" ]]; then
   +        echo "NO CODE FILE DELETED, PASSED!"
            return 0
        else
   -	echo "CODE FILE BE DELETED"
   +        echo "CODE FILE BE DELETED"
            return 2
        fi
    
   @@ -95,20 +91,18 @@
    
        doc_num=0
        doc_sql_manual_num=0
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on docs/fs_brokers or not
   -	echo "$file"
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -	if [[ $file_dir == "docs" ]];then
   +        echo "$file"
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "docs" ]]; then
                let doc_num+=1
   -	fi
   -        if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]];then
   +        fi
   +        if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]]; then
                let doc_sql_manual_num+=1
                continue
            fi
    
   -
            #check change file is md/txt/doc file
            #file_type=$(echo $file|cut -d '.' -f 2)
            #if [[ $file_type == "md" || $file_type == "txt" || $file_type == "doc" ]];then
   @@ -120,7 +114,7 @@
        echo "doc_num: $doc_num"
        echo "file_nums: $file_nums"
        echo "doc_sql_manual_num: $doc_sql_manual_num"
   -    if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]];then
   +    if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]]; then
            echo "JUST MODIFY DOCUMENT, NO COED CHSNGED, PASSED!"
            return 0
        else
   @@ -143,17 +137,16 @@
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED BE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            echo "$file"
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
   -	fi
   +        fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY BE CODE, NO NEED RUN FE UT, PASSED!"
            return 0
        else
   @@ -176,17 +169,16 @@
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED FE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            echo "$file"
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY FE CODE, NO NEED RUN BE UT, PASSED!"
            return 0
        else
   @@ -197,42 +189,49 @@
    
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in
   +    if [ $# ] >0; then
   +        case "$1" in
            --is_modify_only_invoved_be)
   -	    check_removed_change_file $2 "be"
   -	    check_1=$?
   -	    check_all_change_files_is_under_be $2
   -	    check_2=$?
   -	    echo ${check_1}
   -	    echo ${check_2}
   -	    res=`expr $check_1 \* $check_2`
   -	    exit $res
   -	    shift ;;
   +            check_removed_change_file $2 "be"
   +            check_1=$?
   +            check_all_change_files_is_under_be $2
   +            check_2=$?
   +            echo ${check_1}
   +            echo ${check_2}
   +            res=$(expr $check_1 \* $check_2)
   +            exit $res
   +            shift
   +            ;;
            --is_modify_only_invoved_fe)
   -	    check_removed_change_file $2 "fe"
   -	    check_1=$?
   -	    check_all_change_files_is_under_fe $2
   -	    check_2=$?
   -            res=`expr $check_1 \* $check_2`
   -	    echo ${check_1}
   -	    echo ${check_2}
   -	    exit $res
   -	    shift ;;
   -	--is_modify_only_invoved_doc)
   -	    check_removed_change_file $2 "docs"
   -	    check_1=$?
   -	    check_all_change_files_is_under_doc $2
   -	    check_2=$?
   -            res=`expr $check_1 + $check_2`
   -	    echo ${check_1}
   +            check_removed_change_file $2 "fe"
   +            check_1=$?
   +            check_all_change_files_is_under_fe $2
   +            check_2=$?
   +            res=$(expr $check_1 \* $check_2)
   +            echo ${check_1}
                echo ${check_2}
   -	    exit $res
   -	    shift ;;
   -        *) echo "ERROR"; usage; exit 1 ;;
   -    esac
   +            exit $res
   +            shift
   +            ;;
   +        --is_modify_only_invoved_doc)
   +            check_removed_change_file $2 "docs"
   +            check_1=$?
   +            check_all_change_files_is_under_doc $2
   +            check_2=$?
   +            res=$(expr $check_1 + $check_2)
   +            echo ${check_1}
   +            echo ${check_2}
   +            exit $res
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            usage
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/common/clean_disk.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/clean_disk.sh
   @@ -3,7 +3,7 @@
    df -h
    existsTime=720
    #delete files created 20 hours ago
   -echo `date "+%Y-%m-%d %H:%M:%S"` "start to clear oudate file!"
   +echo $(date "+%Y-%m-%d %H:%M:%S") "start to clear oudate file!"
    cd /home/work/teamcity/TeamCity/piplineWork/Compile/
    find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
    cd -
   teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh:43:1: reached EOF without closing quote "
   --- teamcity/doris/benchmark/clickbench/common/teamcity_api.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/teamcity_api.sh
   @@ -139,23 +139,55 @@
    }
    COMMENT
    
   -
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in 
   -        --cancel_running_build) build_id=$2; cancel_running_build $build_id; shift ;;
   -        --cancel_pending_build) build_id=$2; cancel_pending_build $build_id; shift ;;
   -        --show_build_state) build_id=$2; res=$(show_build_state $build_id); echo $res; shift ;;
   -        --show_build_status) build_id=$2; res=$(show_build_status $build_id); echo $res; shift ;;
   -        --show_latest_builds) get_latest_builds; shift ;;
   -        --show_queued_builds) get_queued_builds; shift ;;
   -        --get_all_builds_of_pr_id) get_all_builds $2; shift ;;
   -	--help) usage; shift ;;
   -        *) echo "ERROR"; exit 1 ;;
   -    esac
   +    if [ $# ] >0; then
   +        case "$1" in
   +        --cancel_running_build)
   +            build_id=$2
   +            cancel_running_build $build_id
   +            shift
   +            ;;
   +        --cancel_pending_build)
   +            build_id=$2
   +            cancel_pending_build $build_id
   +            shift
   +            ;;
   +        --show_build_state)
   +            build_id=$2
   +            res=$(show_build_state $build_id)
   +            echo $res
   +            shift
   +            ;;
   +        --show_build_status)
   +            build_id=$2
   +            res=$(show_build_status $build_id)
   +            echo $res
   +            shift
   +            ;;
   +        --show_latest_builds)
   +            get_latest_builds
   +            shift
   +            ;;
   +        --show_queued_builds)
   +            get_queued_builds
   +            shift
   +            ;;
   +        --get_all_builds_of_pr_id)
   +            get_all_builds $2
   +            shift
   +            ;;
   +        --help)
   +            usage
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/common/teamcity_common.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/teamcity_common.sh
   @@ -11,7 +11,7 @@
    JSON_HEADER="--header \"Accept: application/json\""
    
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
         --cancel_running_build build_id    cancel a specific running build
   @@ -32,21 +32,21 @@
        $0 --show_queued_builds             show all queued builds
        $0 --get_all_builds_of_pr_id 9151   get all 9151 builds
      "
   -  exit 1
   +    exit 1
    }
    
    cancel_running_build() {
        build_id=$1
        state=$(show_build_state $build_id)
   -    if [[ $state == "running" ]];then
   +    if [[ $state == "running" ]]; then
            #curl --header "Authorization: Bearer eyJ0eXAiOiAiVENWMiJ9.bW1DcHJpRWNCSktnREhLaHd5Y1lndmpycnJ3.NmEwM2E3YTEtMTVmYy00NGU0LWI1OTAtMzU3MzljODE0Njdk" http://43.129.232.36:8111/app/rest/builds/id:333 -X POST -H 'Content-Type: application/json' -d '{ "buildCancelRequest": {       "comment": "Already running builds will be stopped.",      "readdIntoQueue": "false"    }  }'
            cmd="/app/rest/builds/id:$build_id"
            cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
            url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
            res=$(eval $eval)
   -        check=$(echo $res |grep status="UNKNOWN")
   -        if [[ -z $check ]];then
   -           echo "cancel fail!"
   +        check=$(echo $res | grep status="UNKNOWN")
   +        if [[ -z $check ]]; then
   +            echo "cancel fail!"
            fi
        fi
    
   @@ -55,15 +55,15 @@
    cancel_pending_build() {
        build_id=$1
        state=$(show_build_state $build_id)
   -    if [[ $state == "queued" ]];then
   +    if [[ $state == "queued" ]]; then
            cmd="app/rest/buildQueue/id:$build_id"
            cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
            url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
            #echo $url
            res=$(eval $eval)
   -        check=$(echo $res |grep status="UNKNOWN")
   -        if [[ -z $check ]];then
   -           echo "cancel fail!"
   +        check=$(echo $res | grep status="UNKNOWN")
   +        if [[ -z $check ]]; then
   +            echo "cancel fail!"
            fi
        fi
    }
   @@ -73,15 +73,15 @@
        cmd="app/rest/builds?locator=id:$build_id"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   -    
   +    res=$(eval $url)
   +
        #check build exist or not
   -    check=$(echo $res|grep "<builds count=\"1\"")
   +    check=$(echo $res | grep "<builds count=\"1\"")
        if [[ -z $check ]]; then
            return
        fi
        #get state
   -    state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
   +    state=$(echo $res | awk -F ' ' '{print $9" "$10" "$11}' | awk -F "state=" '{print $2}' | cut -d ' ' -f 1 | sed 's/\"//g')
        #only 2 state: queued and finished
        echo $state
    }
   @@ -91,9 +91,9 @@
        cmd="app/rest/builds?locator=id:$build_id"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   +    res=$(eval $url)
        #check build exist or not
   -    check1=$(echo $res|grep "<builds count=\"1\"")
   +    check1=$(echo $res | grep "<builds count=\"1\"")
        if [[ -z $check1 ]]; then
            return
        fi
   @@ -102,8 +102,8 @@
        #if [[ -z $check ]]; then
        #    return
        #fi
   -    state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
   -    #only 2 state: 
   +    state=$(echo $res | awk -F ' ' '{print $9" "$10" "$11}' | awk -F "status=" '{print $2}' | cut -d ' ' -f 1 | sed 's/\"//g')
   +    #only 2 state:
        echo $state
    }
    
   @@ -111,7 +111,7 @@
        branch=$1
        cmd="app/rest/builds?locator=branch:$branch"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
   -    res=`eval $url`
   +    res=$(eval $url)
    }
    
    get_latest_builds() {
   @@ -125,14 +125,12 @@
        cmd="app/rest/buildQueue"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $JSON_HEADER $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   +    res=$(eval $url)
        #a=$(echo $res|grep -oP 'build id=.*'|head -1)
   -    
   -    
   +
        #a=$res
        #while [[ "check"$a != "check" ]]
        #do
        #    a=$(echo $a|awk -F 'build id="' '{print $2}')
        #done
    }
   -
   --- teamcity/doris/benchmark/clickbench/common/test.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/test.sh
   @@ -3,33 +3,29 @@
    repo=doris
    GITHUB_TOKEN=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
    
   -function get_all_change_files(){
   +function get_all_change_files() {
        pr_id=$1
        files=()
    
        page=1
        per_page=100
   -    while [ 1 -eq 1 ]
   -    do
   -	#echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   -	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   +    while [ 1 -eq 1 ]; do
   +        #echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   +        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page | jq -r '.[]|select(.status = "removed")| .filename'))
            res_len=${#res[@]}
   -        if [ ${res_len} -ne 0 ];then
   -	    let page+=1
   +        if [ ${res_len} -ne 0 ]; then
   +            let page+=1
                #files="${res[@]}""$files"
   -	    files=(${res[@]} ${files[*]})
   +            files=(${res[@]} ${files[*]})
            else
                break
            fi
   -	echo 
   +        echo
        done
        echo "${files[@]}"
    }
    
   -
    out=($(get_all_change_files 11154))
    
   -
   -
    echo "=================="
    echo "${out[@]}"
   --- teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh
   @@ -3,9 +3,8 @@
    #res=(`git diff --name-only HEAD~ HEAD`)
    #file_nums=${#res[@]}
    
   -
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
    
   @@ -14,24 +13,22 @@
        $0 --is_modify_only_invoved_fe pr_id          if pr changed code only invoved fe doc, fs_brocker, return 0; else return 2
        $0 --is_modify_only_invoved_doc pr_id         if pr changed code only invoved doc, fs_brocker, return 0; else return 2
      "
   -  exit 1
   +    exit 1
    }
    
   -
    function check_all_change_files_is_under_doc() {
    
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on docs/fs_brokers or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
   @@ -43,7 +40,7 @@
            #fi
        done
    
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY DOCUMENT, NO COED CHSNGED, PASSED!"
            exit 0
        else
   @@ -57,21 +54,20 @@
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED BE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
   -	fi
   +        fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY BE CODE, NO NEED RUN FE UT, PASSED!"
            exit 0
        else
   @@ -85,21 +81,20 @@
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED FE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY FE CODE, NO NEED RUN BE UT, PASSED!"
            exit 0
        else
   @@ -110,15 +105,28 @@
    
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in
   -        --is_modify_only_invoved_be) check_all_change_files_is_under_be $2; shift ;;
   -        --is_modify_only_invoved_fe) check_all_change_files_is_under_fe $2; shift ;;
   -	--is_modify_only_doc) check_all_change_files_is_under_doc $2; shift ;;
   -        *) echo "ERROR"; usage; exit 1 ;;
   -    esac
   +    if [ $# ] >0; then
   +        case "$1" in
   +        --is_modify_only_invoved_be)
   +            check_all_change_files_is_under_be $2
   +            shift
   +            ;;
   +        --is_modify_only_invoved_fe)
   +            check_all_change_files_is_under_fe $2
   +            shift
   +            ;;
   +        --is_modify_only_doc)
   +            check_all_change_files_is_under_doc $2
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            usage
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/prepare.sh.orig
   +++ teamcity/doris/benchmark/clickbench/prepare.sh
   @@ -22,4 +22,3 @@
    fi
    qa_home="${pipeline_home}/selectdb-qa"
    cd "${qa_home}" && git stash && git checkout main && git pull && cd -
   -
   ----------
   
   You can reformat the above files to meet shfmt's requirements by typing:
   
     shfmt  -w filename
   
   
   ```
   </details>
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] github-actions[bot] commented on pull request #13259: test benchmark pipeline

Posted by GitBox <gi...@apache.org>.
github-actions[bot] commented on PR #13259:
URL: https://github.com/apache/doris/pull/13259#issuecomment-1301757757

   #### `sh-checker report`
   
   To get the full details, please check in the [job]("https://github.com/apache/doris/actions/runs/3383943218") output.
   
   <details>
   <summary>shellcheck errors</summary>
   
   ```
   
   'shellcheck ' returned error 1 finding the following syntactical issues:
   
   ----------
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 11:
   check=$(lsof -i:$port|awk '{print $2}'|wc -l)
                   ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   check=$(lsof -i:"$port"|awk '{print $2}'|wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 12:
   if [ "check$check" != "check0" ];then
      ^---------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
              ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   if [[ "check${check}" != "check0" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 13:
       if [ "check"${case_level} == "check" ];then
          ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                   ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       if [[ "check""${case_level}" == "check" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 14:
           check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep deleted||wc -l)
                            ^-- SC2046 (warning): Quote this to prevent word splitting.
                            ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                     ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                     ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                              ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                              ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check_res=$(pwdx $(lsof -i:"$port"|grep -v PID|awk '{print $2}')|grep $env_name|grep deleted||wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 16:
           check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep $case_level|grep deleted||wc -l)
                            ^-- SC2046 (warning): Quote this to prevent word splitting.
                            ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                     ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                     ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                              ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                              ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                             ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                             ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check_res=$(pwdx $(lsof -i:"$port"|grep -v PID|awk '{print $2}')|grep $env_name|grep $case_level|grep deleted||wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 18:
       if [ "check$check_res" != "check0" ];then
          ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                  ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ "check${check_res}" != "check0" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 19:
           be_pid=(`lsof -i:$port|grep -v PID|awk '{print $2}'`)
                   ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                   ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                            ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                            ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           be_pid=($(lsof -i:"$port"|grep -v PID|awk '{print $2}'))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 20:
           echo "Detected residual processes: ${be_pid}"
                                              ^-------^ SC2128 (warning): Expanding an array without an index only gives the first element.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 21:
           echo "kill residual processes: kill -9 ${be_pid}"
                                                  ^-------^ SC2128 (warning): Expanding an array without an index only gives the first element.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 22:
           kill -9 $be_pid
                   ^-----^ SC2128 (warning): Expanding an array without an index only gives the first element.
                   ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           kill -9 "$be_pid"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 29:
       while [ 1 -eq 1 ]
             ^---------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                 ^-^ SC2050 (warning): This expression is constant. Did you forget the $ on a variable?
   
   Did you mean: 
       while [[ 1 -eq 1 ]]
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 32:
           res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
                ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                              ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                            ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                    ^-------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^---^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files?per_page="$per_page"\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 35:
           if [ ${res_len} -ne 0 ];then
              ^------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           if [[ "${res_len}" -ne 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 36:
               let page+=1
               ^---------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 38:
               files=(${res[@]} ${files[*]})
                      ^-------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
                                ^---------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 54:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 58:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 61:
   	file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 62:
           file_type=$(echo $file|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
                            ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                            ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_type=$(echo "$file"|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 64:
   	if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]];then
                 ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                     ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                           ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ ${file_type} == "cpp" || ${file_type} == "c" || ${file_type} == "java" || ${file_type} == "py" || ${file_type} == "h" || ${file_type} == 'js' ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 68:
   	if [[ "check$file_dir" == "check${module}" ]];then
                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ "check${file_dir}" == "check${module}" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 69:
               let module_file+=1
               ^----------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 89:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 98:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 101:
   	echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 102:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 103:
   	if [[ $file_dir == "docs" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ ${file_dir} == "docs" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 104:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 106:
           if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]];then
                  ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                              ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ "${file}" =~ "docs/zh-CN/docs/sql-manual/" || "${file}" =~ "docs/en/docs/sql-manual/" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 107:
               let doc_sql_manual_num+=1
               ^-----------------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 120:
       echo "doc_num: $doc_num"
                      ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "doc_num: ${doc_num}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 121:
       echo "file_nums: $file_nums"
                        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "file_nums: ${file_nums}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 122:
       echo "doc_sql_manual_num: $doc_sql_manual_num"
                                 ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "doc_sql_manual_num: ${doc_sql_manual_num}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 123:
       if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} && ${doc_sql_manual_num} -eq 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 138:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 146:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 148:
           echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 150:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 151:
           if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "be" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 152:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 156:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 171:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 179:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 181:
           echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 183:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 184:
           if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "fe" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 185:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 189:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 200:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 203:
   	    check_removed_change_file $2 "be"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "be"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 205:
   	    check_all_change_files_is_under_be $2
                                                  ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_be "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 207:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 208:
   	    echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 209:
   	    res=`expr $check_1 \* $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    res=$(expr "$check_1" \* $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 210:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 213:
   	    check_removed_change_file $2 "fe"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "fe"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 215:
   	    check_all_change_files_is_under_fe $2
                                                  ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_fe "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 217:
               res=`expr $check_1 \* $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
               res=$(expr "$check_1" \* $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 218:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 219:
   	    echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 220:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 223:
   	    check_removed_change_file $2 "docs"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "docs"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 225:
   	    check_all_change_files_is_under_doc $2
                                                   ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_doc "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 227:
               res=`expr $check_1 + $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                    ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                    ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
               res=$(expr "$check_1" + $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 228:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 229:
               echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
               echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 230:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 238:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 6:
   echo `date "+%Y-%m-%d %H:%M:%S"` "start to clear oudate file!"
        ^-------------------------^ SC2046 (warning): Quote this to prevent word splitting.
        ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
   
   Did you mean: 
   echo $(date "+%Y-%m-%d %H:%M:%S") "start to clear oudate file!"
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 7:
   cd /home/work/teamcity/TeamCity/piplineWork/Compile/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/Compile/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 8:
   find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                         ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 9:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   ^--^ SC2103 (info): Use a ( subshell ) to avoid having to cd back.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 10:
   cd /home/work/teamcity/TeamCity/piplineWork/feUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/feUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 11:
   find /home/work/teamcity/TeamCity/piplineWork/feUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/feUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 12:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 13:
   cd /home/work/teamcity/TeamCity/piplineWork/beUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/beUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 14:
   find /home/work/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 15:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 16:
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 17:
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                         ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 18:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 19:
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 20:
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_compile.sh line 3:
   id=$(echo $RANDOM)
      ^-------------^ SC2116 (style): Useless echo? Instead of 'cmd $(echo foo)', just use 'cmd foo'.
             ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
             ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   id=$(echo "$RANDOM")
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_compile.sh line 5:
   docker run -i --rm --name doris-compile-$id -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v $work_path:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
                                           ^-^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                           ^-^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                                    ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   docker run -i --rm --name doris-compile-"$id" -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v $work_path:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 40:
       docker_name="doris-compile-"$(echo $RANDOM)
                                  ^-- SC1078 (warning): Did you forget to close this double quoted string?
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 42:
       cmd="docker run -i --rm --name doris-compile-$id -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v %system.teamcity.build.workingDir%:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
           ^-- SC1079 (info): This is actually an end quote, but due to next char it looks suspect.
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 43:
   "
   ^-- SC1073 (error): Couldn't parse this double quoted string. Fix to allow more checks.
   ^-- SC1009 (info): The mentioned syntax error was in this simple command.
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 45:
   
   ^-- SC1072 (error): Expected end of double quoted string. Fix any mentioned problems and try again.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 5:
   <<'COMMENT'
   ^---------^ SC2188 (warning): This redirection doesn't have a command. Move to its command (or use 'true' as no-op).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 145:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 147:
           --cancel_running_build) build_id=$2; cancel_running_build $build_id; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --cancel_running_build) build_id=$2; cancel_running_build "$build_id"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 148:
           --cancel_pending_build) build_id=$2; cancel_pending_build $build_id; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --cancel_pending_build) build_id=$2; cancel_pending_build "$build_id"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 149:
           --show_build_state) build_id=$2; res=$(show_build_state $build_id); echo $res; shift ;;
                                                                   ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                   ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --show_build_state) build_id=$2; res=$(show_build_state "$build_id"); echo $res; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 150:
           --show_build_status) build_id=$2; res=$(show_build_status $build_id); echo $res; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                      ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                      ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --show_build_status) build_id=$2; res=$(show_build_status "$build_id"); echo $res; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 153:
           --get_all_builds_of_pr_id) get_all_builds $2; shift ;;
                                                     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --get_all_builds_of_pr_id) get_all_builds "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 161:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 4:
   zcp_TOKEN="eyJ0eXAiOiAiVENWMiJ9.bW1DcHJpRWNCSktnREhLaHd5Y1lndmpycnJ3.NmEwM2E3YTEtMTVmYy00NGU0LWI1OTAtMzU3MzljODE0Njdk"
   ^-------^ SC2034 (warning): zcp_TOKEN appears unused. Verify use (or export if used externally).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 7:
   zcp_TEAMCITY_SERVER="http://43.129.232.36:8111"
   ^-----------------^ SC2034 (warning): zcp_TEAMCITY_SERVER appears unused. Verify use (or export if used externally).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 40:
       state=$(show_build_state $build_id)
                                ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(show_build_state "$build_id")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 41:
       if [[ $state == "running" ]];then
             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${state} == "running" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 43:
           cmd="/app/rest/builds/id:$build_id"
                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd="/app/rest/builds/id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 44:
           cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
               ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd=${cmd}" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 45:
           url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                        ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                  ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                 ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                          ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                           ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 46:
           res=$(eval $eval)
                      ^---^ SC2154 (warning): eval is referenced but not assigned (for output from commands, use "$(eval ...)" ).
                      ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=$(eval "$eval")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 47:
           check=$(echo $res |grep status="UNKNOWN")
                        ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                        ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check=$(echo "$res" |grep status="UNKNOWN")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 48:
           if [[ -z $check ]];then
                    ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ -z ${check} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 57:
       state=$(show_build_state $build_id)
                                ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(show_build_state "$build_id")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 58:
       if [[ $state == "queued" ]];then
             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${state} == "queued" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 59:
           cmd="app/rest/buildQueue/id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd="app/rest/buildQueue/id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 60:
           cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
               ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd=${cmd}" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 61:
           url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                        ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                  ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                 ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                          ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                           ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 63:
           res=$(eval $eval)
                      ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=$(eval "$eval")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 64:
           check=$(echo $res |grep status="UNKNOWN")
                        ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                        ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check=$(echo "$res" |grep status="UNKNOWN")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 65:
           if [[ -z $check ]];then
                    ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ -z ${check} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 73:
       cmd="app/rest/builds?locator=id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 74:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 76:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 79:
       check=$(echo $res|grep "<builds count=\"1\"")
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       check=$(echo "$res"|grep "<builds count=\"1\"")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 80:
       if [[ -z $check ]]; then
                ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ -z ${check} ]]; then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 84:
       state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                   ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(echo "$res" |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g')
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 86:
       echo $state
            ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "$state"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 91:
       cmd="app/rest/builds?locator=id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 92:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 94:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 96:
       check1=$(echo $res|grep "<builds count=\"1\"")
                     ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                     ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       check1=$(echo "$res"|grep "<builds count=\"1\"")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 97:
       if [[ -z $check1 ]]; then
                ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ -z ${check1} ]]; then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 105:
       state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                   ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(echo "$res" |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g')
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 107:
       echo $state
            ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "$state"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 112:
       cmd="app/rest/builds?locator=branch:$branch"
                                           ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=branch:${branch}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 113:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 114:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 119:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                           ^-^ SC2089 (warning): Quotes/backslashes will be treated literally. Use an array.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 121:
       res=eval $url
       ^-----------^ SC2209 (warning): Use var=$(command) to assign output (or quote to assign string).
                ^--^ SC2090 (warning): Quotes/backslashes in this variable will not be respected.
                ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=eval ${url}
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 126:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $JSON_HEADER $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                   ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${JSON_HEADER} ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 128:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 12:
       while [ 1 -eq 1 ]
             ^---------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                 ^-^ SC2050 (warning): This expression is constant. Did you forget the $ on a variable?
   
   Did you mean: 
       while [[ 1 -eq 1 ]]
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 15:
   	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
                ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                              ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                            ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                    ^-------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^---^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files?per_page="$per_page"\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 17:
           if [ ${res_len} -ne 0 ];then
              ^------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           if [[ "${res_len}" -ne 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 18:
   	    let page+=1
               ^---------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 20:
   	    files=(${res[@]} ${files[*]})
                      ^-------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
                                ^---------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 30:
   out=($(get_all_change_files 11154))
        ^---------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check.sh line 3:
   <<'COMMENT'
   ^---------^ SC2188 (warning): This redirection doesn't have a command. Move to its command (or use 'true' as no-op).
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 26:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 30:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 33:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 34:
           if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 35:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 46:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 60:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 65:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 68:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 69:
           if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "be" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 70:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 74:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 88:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 93:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 96:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 97:
           if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "fe" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 98:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 102:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 113:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 115:
           --is_modify_only_invoved_be) check_all_change_files_is_under_be $2; shift ;;
                                                                           ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --is_modify_only_invoved_be) check_all_change_files_is_under_be "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 116:
           --is_modify_only_invoved_fe) check_all_change_files_is_under_fe $2; shift ;;
                                                                           ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --is_modify_only_invoved_fe) check_all_change_files_is_under_fe "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 117:
   	--is_modify_only_doc) check_all_change_files_is_under_doc $2; shift ;;
                                                                     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	--is_modify_only_doc) check_all_change_files_is_under_doc "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 124:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   For more information:
     https://www.shellcheck.net/wiki/SC2068 -- Double quote array expansions to ...
     https://www.shellcheck.net/wiki/SC2071 -- > is for string comparisons. Use ...
     https://www.shellcheck.net/wiki/SC1078 -- Did you forget to close this doub...
   ----------
   
   You can address the above issues in one of three ways:
   1. Manually correct the issue in the offending shell script;
   2. Disable specific issues by adding the comment:
     # shellcheck disable=NNNN
   above the line that contains the issue, where NNNN is the error code;
   3. Add '-e NNNN' to the SHELLCHECK_OPTS setting in your .yml action file.
   
   
   
   ```
   </details>
   
   <details>
   <summary>shfmt errors</summary>
   
   ```
   
   'shfmt ' returned error 1 finding the following formatting issues:
   
   ----------
   --- teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh
   @@ -8,23 +8,22 @@
    echo "===================================="
    echo "START TO DETECT RESIDUAL PROCESSES!"
    
   -check=$(lsof -i:$port|awk '{print $2}'|wc -l)
   -if [ "check$check" != "check0" ];then
   -    if [ "check"${case_level} == "check" ];then
   -        check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep deleted||wc -l)
   +check=$(lsof -i:$port | awk '{print $2}' | wc -l)
   +if [ "check$check" != "check0" ]; then
   +    if [ "check"${case_level} == "check" ]; then
   +        check_res=$(pwdx $(lsof -i:$port | grep -v PID | awk '{print $2}') | grep $env_name | grep deleted || wc -l)
        else
   -        check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep $case_level|grep deleted||wc -l)
   +        check_res=$(pwdx $(lsof -i:$port | grep -v PID | awk '{print $2}') | grep $env_name | grep $case_level | grep deleted || wc -l)
        fi
   -    if [ "check$check_res" != "check0" ];then
   -        be_pid=(`lsof -i:$port|grep -v PID|awk '{print $2}'`)
   +    if [ "check$check_res" != "check0" ]; then
   +        be_pid=($(lsof -i:$port | grep -v PID | awk '{print $2}'))
            echo "Detected residual processes: ${be_pid}"
            echo "kill residual processes: kill -9 ${be_pid}"
            kill -9 $be_pid
        fi
    else
   -        echo "No residual processes"
   +    echo "No residual processes"
    fi
    
   -
    echo "FINISH DETECT RESIDUAL PROCESSES!"
    echo "==================================="
   --- teamcity/doris/benchmark/clickbench/common/check_change_file.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/check_change_file.sh
   @@ -7,7 +7,7 @@
    GITHUB_TOKEN=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
    
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
    
   @@ -16,23 +16,21 @@
        $0 --is_modify_only_invoved_fe pr_id          if pr changed code only invoved fe doc, fs_brocker, return 0; else return 2
        $0 --is_modify_only_invoved_doc pr_id         if pr changed code only invoved doc, fs_brocker, return 0; else return 2
      "
   -  exit 1
   +    exit 1
    }
    
   -
   -function get_all_change_files(){
   +function get_all_change_files() {
        pr_id=$1
        files=()
    
        page=1
        per_page=100
   -    while [ 1 -eq 1 ]
   -    do
   +    while [ 1 -eq 1 ]; do
            #echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   -        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   +        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page | jq -r '.[]|select(.status = "removed")| .filename'))
            res_len=${#res[@]}
            #echo "================"$res_len
   -        if [ ${res_len} -ne 0 ];then
   +        if [ ${res_len} -ne 0 ]; then
                let page+=1
                #files="${res[@]}""$files"
                files=(${res[@]} ${files[*]})
   @@ -44,8 +42,7 @@
        echo "${files[@]}"
    }
    
   -
   -function check_removed_change_file(){
   +function check_removed_change_file() {
        pr_id=$1
        module=$2
        owner='apache'
   @@ -55,26 +52,25 @@
        file_nums=${#res[@]}
        is_code_change_flag=false
        module_file=0
   -    for file in ${res[@]}
   -    do
   -	#echo "$file"
   -	file_dir=$(echo $file|cut -d '/' -f 1)
   -        file_type=$(echo $file|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
   -	#if [[  "check$file_dir" == "check${module}" &&  ($file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js') ]];then
   -	if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]];then
   -	    echo "code has changed, ${file} is deleted"
   -	    is_code_change_flag=true
   -	fi
   -	if [[ "check$file_dir" == "check${module}" ]];then
   +    for file in ${res[@]}; do
   +        #echo "$file"
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        file_type=$(echo $file | rev | cut -d / -f 1 | cut -d '.' -f 1 | rev)
   +        #if [[  "check$file_dir" == "check${module}" &&  ($file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js') ]];then
   +        if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]]; then
   +            echo "code has changed, ${file} is deleted"
   +            is_code_change_flag=true
   +        fi
   +        if [[ "check$file_dir" == "check${module}" ]]; then
                let module_file+=1
   -	fi
   +        fi
        done
    
   -    if [[ "${is_code_change_flag}" == "false" ]];then
   -	echo "NO CODE FILE DELETED, PASSED!"
   +    if [[ "${is_code_change_flag}" == "false" ]]; then
   +        echo "NO CODE FILE DELETED, PASSED!"
            return 0
        else
   -	echo "CODE FILE BE DELETED"
   +        echo "CODE FILE BE DELETED"
            return 2
        fi
    
   @@ -95,20 +91,18 @@
    
        doc_num=0
        doc_sql_manual_num=0
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on docs/fs_brokers or not
   -	echo "$file"
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -	if [[ $file_dir == "docs" ]];then
   +        echo "$file"
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "docs" ]]; then
                let doc_num+=1
   -	fi
   -        if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]];then
   +        fi
   +        if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]]; then
                let doc_sql_manual_num+=1
                continue
            fi
    
   -
            #check change file is md/txt/doc file
            #file_type=$(echo $file|cut -d '.' -f 2)
            #if [[ $file_type == "md" || $file_type == "txt" || $file_type == "doc" ]];then
   @@ -120,7 +114,7 @@
        echo "doc_num: $doc_num"
        echo "file_nums: $file_nums"
        echo "doc_sql_manual_num: $doc_sql_manual_num"
   -    if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]];then
   +    if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]]; then
            echo "JUST MODIFY DOCUMENT, NO COED CHSNGED, PASSED!"
            return 0
        else
   @@ -143,17 +137,16 @@
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED BE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            echo "$file"
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
   -	fi
   +        fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY BE CODE, NO NEED RUN FE UT, PASSED!"
            return 0
        else
   @@ -176,17 +169,16 @@
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED FE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            echo "$file"
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY FE CODE, NO NEED RUN BE UT, PASSED!"
            return 0
        else
   @@ -197,42 +189,49 @@
    
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in
   +    if [ $# ] >0; then
   +        case "$1" in
            --is_modify_only_invoved_be)
   -	    check_removed_change_file $2 "be"
   -	    check_1=$?
   -	    check_all_change_files_is_under_be $2
   -	    check_2=$?
   -	    echo ${check_1}
   -	    echo ${check_2}
   -	    res=`expr $check_1 \* $check_2`
   -	    exit $res
   -	    shift ;;
   +            check_removed_change_file $2 "be"
   +            check_1=$?
   +            check_all_change_files_is_under_be $2
   +            check_2=$?
   +            echo ${check_1}
   +            echo ${check_2}
   +            res=$(expr $check_1 \* $check_2)
   +            exit $res
   +            shift
   +            ;;
            --is_modify_only_invoved_fe)
   -	    check_removed_change_file $2 "fe"
   -	    check_1=$?
   -	    check_all_change_files_is_under_fe $2
   -	    check_2=$?
   -            res=`expr $check_1 \* $check_2`
   -	    echo ${check_1}
   -	    echo ${check_2}
   -	    exit $res
   -	    shift ;;
   -	--is_modify_only_invoved_doc)
   -	    check_removed_change_file $2 "docs"
   -	    check_1=$?
   -	    check_all_change_files_is_under_doc $2
   -	    check_2=$?
   -            res=`expr $check_1 + $check_2`
   -	    echo ${check_1}
   +            check_removed_change_file $2 "fe"
   +            check_1=$?
   +            check_all_change_files_is_under_fe $2
   +            check_2=$?
   +            res=$(expr $check_1 \* $check_2)
   +            echo ${check_1}
                echo ${check_2}
   -	    exit $res
   -	    shift ;;
   -        *) echo "ERROR"; usage; exit 1 ;;
   -    esac
   +            exit $res
   +            shift
   +            ;;
   +        --is_modify_only_invoved_doc)
   +            check_removed_change_file $2 "docs"
   +            check_1=$?
   +            check_all_change_files_is_under_doc $2
   +            check_2=$?
   +            res=$(expr $check_1 + $check_2)
   +            echo ${check_1}
   +            echo ${check_2}
   +            exit $res
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            usage
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/common/clean_disk.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/clean_disk.sh
   @@ -3,7 +3,7 @@
    df -h
    existsTime=720
    #delete files created 20 hours ago
   -echo `date "+%Y-%m-%d %H:%M:%S"` "start to clear oudate file!"
   +echo $(date "+%Y-%m-%d %H:%M:%S") "start to clear oudate file!"
    cd /home/work/teamcity/TeamCity/piplineWork/Compile/
    find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
    cd -
   teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh:43:1: reached EOF without closing quote "
   --- teamcity/doris/benchmark/clickbench/common/teamcity_api.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/teamcity_api.sh
   @@ -139,23 +139,55 @@
    }
    COMMENT
    
   -
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in 
   -        --cancel_running_build) build_id=$2; cancel_running_build $build_id; shift ;;
   -        --cancel_pending_build) build_id=$2; cancel_pending_build $build_id; shift ;;
   -        --show_build_state) build_id=$2; res=$(show_build_state $build_id); echo $res; shift ;;
   -        --show_build_status) build_id=$2; res=$(show_build_status $build_id); echo $res; shift ;;
   -        --show_latest_builds) get_latest_builds; shift ;;
   -        --show_queued_builds) get_queued_builds; shift ;;
   -        --get_all_builds_of_pr_id) get_all_builds $2; shift ;;
   -	--help) usage; shift ;;
   -        *) echo "ERROR"; exit 1 ;;
   -    esac
   +    if [ $# ] >0; then
   +        case "$1" in
   +        --cancel_running_build)
   +            build_id=$2
   +            cancel_running_build $build_id
   +            shift
   +            ;;
   +        --cancel_pending_build)
   +            build_id=$2
   +            cancel_pending_build $build_id
   +            shift
   +            ;;
   +        --show_build_state)
   +            build_id=$2
   +            res=$(show_build_state $build_id)
   +            echo $res
   +            shift
   +            ;;
   +        --show_build_status)
   +            build_id=$2
   +            res=$(show_build_status $build_id)
   +            echo $res
   +            shift
   +            ;;
   +        --show_latest_builds)
   +            get_latest_builds
   +            shift
   +            ;;
   +        --show_queued_builds)
   +            get_queued_builds
   +            shift
   +            ;;
   +        --get_all_builds_of_pr_id)
   +            get_all_builds $2
   +            shift
   +            ;;
   +        --help)
   +            usage
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/common/teamcity_common.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/teamcity_common.sh
   @@ -11,7 +11,7 @@
    JSON_HEADER="--header \"Accept: application/json\""
    
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
         --cancel_running_build build_id    cancel a specific running build
   @@ -32,21 +32,21 @@
        $0 --show_queued_builds             show all queued builds
        $0 --get_all_builds_of_pr_id 9151   get all 9151 builds
      "
   -  exit 1
   +    exit 1
    }
    
    cancel_running_build() {
        build_id=$1
        state=$(show_build_state $build_id)
   -    if [[ $state == "running" ]];then
   +    if [[ $state == "running" ]]; then
            #curl --header "Authorization: Bearer eyJ0eXAiOiAiVENWMiJ9.bW1DcHJpRWNCSktnREhLaHd5Y1lndmpycnJ3.NmEwM2E3YTEtMTVmYy00NGU0LWI1OTAtMzU3MzljODE0Njdk" http://43.129.232.36:8111/app/rest/builds/id:333 -X POST -H 'Content-Type: application/json' -d '{ "buildCancelRequest": {       "comment": "Already running builds will be stopped.",      "readdIntoQueue": "false"    }  }'
            cmd="/app/rest/builds/id:$build_id"
            cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
            url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
            res=$(eval $eval)
   -        check=$(echo $res |grep status="UNKNOWN")
   -        if [[ -z $check ]];then
   -           echo "cancel fail!"
   +        check=$(echo $res | grep status="UNKNOWN")
   +        if [[ -z $check ]]; then
   +            echo "cancel fail!"
            fi
        fi
    
   @@ -55,15 +55,15 @@
    cancel_pending_build() {
        build_id=$1
        state=$(show_build_state $build_id)
   -    if [[ $state == "queued" ]];then
   +    if [[ $state == "queued" ]]; then
            cmd="app/rest/buildQueue/id:$build_id"
            cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
            url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
            #echo $url
            res=$(eval $eval)
   -        check=$(echo $res |grep status="UNKNOWN")
   -        if [[ -z $check ]];then
   -           echo "cancel fail!"
   +        check=$(echo $res | grep status="UNKNOWN")
   +        if [[ -z $check ]]; then
   +            echo "cancel fail!"
            fi
        fi
    }
   @@ -73,15 +73,15 @@
        cmd="app/rest/builds?locator=id:$build_id"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   -    
   +    res=$(eval $url)
   +
        #check build exist or not
   -    check=$(echo $res|grep "<builds count=\"1\"")
   +    check=$(echo $res | grep "<builds count=\"1\"")
        if [[ -z $check ]]; then
            return
        fi
        #get state
   -    state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
   +    state=$(echo $res | awk -F ' ' '{print $9" "$10" "$11}' | awk -F "state=" '{print $2}' | cut -d ' ' -f 1 | sed 's/\"//g')
        #only 2 state: queued and finished
        echo $state
    }
   @@ -91,9 +91,9 @@
        cmd="app/rest/builds?locator=id:$build_id"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   +    res=$(eval $url)
        #check build exist or not
   -    check1=$(echo $res|grep "<builds count=\"1\"")
   +    check1=$(echo $res | grep "<builds count=\"1\"")
        if [[ -z $check1 ]]; then
            return
        fi
   @@ -102,8 +102,8 @@
        #if [[ -z $check ]]; then
        #    return
        #fi
   -    state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
   -    #only 2 state: 
   +    state=$(echo $res | awk -F ' ' '{print $9" "$10" "$11}' | awk -F "status=" '{print $2}' | cut -d ' ' -f 1 | sed 's/\"//g')
   +    #only 2 state:
        echo $state
    }
    
   @@ -111,7 +111,7 @@
        branch=$1
        cmd="app/rest/builds?locator=branch:$branch"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
   -    res=`eval $url`
   +    res=$(eval $url)
    }
    
    get_latest_builds() {
   @@ -125,14 +125,12 @@
        cmd="app/rest/buildQueue"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $JSON_HEADER $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   +    res=$(eval $url)
        #a=$(echo $res|grep -oP 'build id=.*'|head -1)
   -    
   -    
   +
        #a=$res
        #while [[ "check"$a != "check" ]]
        #do
        #    a=$(echo $a|awk -F 'build id="' '{print $2}')
        #done
    }
   -
   --- teamcity/doris/benchmark/clickbench/common/test.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/test.sh
   @@ -3,33 +3,29 @@
    repo=doris
    GITHUB_TOKEN=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
    
   -function get_all_change_files(){
   +function get_all_change_files() {
        pr_id=$1
        files=()
    
        page=1
        per_page=100
   -    while [ 1 -eq 1 ]
   -    do
   -	#echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   -	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   +    while [ 1 -eq 1 ]; do
   +        #echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   +        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page | jq -r '.[]|select(.status = "removed")| .filename'))
            res_len=${#res[@]}
   -        if [ ${res_len} -ne 0 ];then
   -	    let page+=1
   +        if [ ${res_len} -ne 0 ]; then
   +            let page+=1
                #files="${res[@]}""$files"
   -	    files=(${res[@]} ${files[*]})
   +            files=(${res[@]} ${files[*]})
            else
                break
            fi
   -	echo 
   +        echo
        done
        echo "${files[@]}"
    }
    
   -
    out=($(get_all_change_files 11154))
    
   -
   -
    echo "=================="
    echo "${out[@]}"
   --- teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh
   @@ -3,9 +3,8 @@
    #res=(`git diff --name-only HEAD~ HEAD`)
    #file_nums=${#res[@]}
    
   -
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
    
   @@ -14,24 +13,22 @@
        $0 --is_modify_only_invoved_fe pr_id          if pr changed code only invoved fe doc, fs_brocker, return 0; else return 2
        $0 --is_modify_only_invoved_doc pr_id         if pr changed code only invoved doc, fs_brocker, return 0; else return 2
      "
   -  exit 1
   +    exit 1
    }
    
   -
    function check_all_change_files_is_under_doc() {
    
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on docs/fs_brokers or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
   @@ -43,7 +40,7 @@
            #fi
        done
    
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY DOCUMENT, NO COED CHSNGED, PASSED!"
            exit 0
        else
   @@ -57,21 +54,20 @@
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED BE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
   -	fi
   +        fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY BE CODE, NO NEED RUN FE UT, PASSED!"
            exit 0
        else
   @@ -85,21 +81,20 @@
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED FE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY FE CODE, NO NEED RUN BE UT, PASSED!"
            exit 0
        else
   @@ -110,15 +105,28 @@
    
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in
   -        --is_modify_only_invoved_be) check_all_change_files_is_under_be $2; shift ;;
   -        --is_modify_only_invoved_fe) check_all_change_files_is_under_fe $2; shift ;;
   -	--is_modify_only_doc) check_all_change_files_is_under_doc $2; shift ;;
   -        *) echo "ERROR"; usage; exit 1 ;;
   -    esac
   +    if [ $# ] >0; then
   +        case "$1" in
   +        --is_modify_only_invoved_be)
   +            check_all_change_files_is_under_be $2
   +            shift
   +            ;;
   +        --is_modify_only_invoved_fe)
   +            check_all_change_files_is_under_fe $2
   +            shift
   +            ;;
   +        --is_modify_only_doc)
   +            check_all_change_files_is_under_doc $2
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            usage
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/prepare.sh.orig
   +++ teamcity/doris/benchmark/clickbench/prepare.sh
   @@ -22,6 +22,3 @@
    fi
    qa_home="${pipeline_home}/selectdb-qa"
    cd "${qa_home}" && git stash && git checkout main && git pull && cd -
   -
   -
   -
   ----------
   
   You can reformat the above files to meet shfmt's requirements by typing:
   
     shfmt  -w filename
   
   
   ```
   </details>
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] github-actions[bot] commented on pull request #13259: test benchmark pipeline

Posted by GitBox <gi...@apache.org>.
github-actions[bot] commented on PR #13259:
URL: https://github.com/apache/doris/pull/13259#issuecomment-1326315629

   #### `sh-checker report`
   
   To get the full details, please check in the [job]("https://github.com/apache/doris/actions/runs/3540137686") output.
   
   <details>
   <summary>shellcheck errors</summary>
   
   ```
   
   'shellcheck ' returned error 1 finding the following syntactical issues:
   
   ----------
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 11:
   check=$(lsof -i:$port|awk '{print $2}'|wc -l)
                   ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   check=$(lsof -i:"$port"|awk '{print $2}'|wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 12:
   if [ "check$check" != "check0" ];then
      ^---------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
              ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   if [[ "check${check}" != "check0" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 13:
       if [ "check"${case_level} == "check" ];then
          ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                   ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       if [[ "check""${case_level}" == "check" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 14:
           check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep deleted||wc -l)
                            ^-- SC2046 (warning): Quote this to prevent word splitting.
                            ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                     ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                     ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                              ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                              ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check_res=$(pwdx $(lsof -i:"$port"|grep -v PID|awk '{print $2}')|grep $env_name|grep deleted||wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 16:
           check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep $case_level|grep deleted||wc -l)
                            ^-- SC2046 (warning): Quote this to prevent word splitting.
                            ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                     ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                     ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                              ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                              ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                             ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                             ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check_res=$(pwdx $(lsof -i:"$port"|grep -v PID|awk '{print $2}')|grep $env_name|grep $case_level|grep deleted||wc -l)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 18:
       if [ "check$check_res" != "check0" ];then
          ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                  ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ "check${check_res}" != "check0" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 19:
           be_pid=(`lsof -i:$port|grep -v PID|awk '{print $2}'`)
                   ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                   ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                            ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                            ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           be_pid=($(lsof -i:"$port"|grep -v PID|awk '{print $2}'))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 20:
           echo "Detected residual processes: ${be_pid}"
                                              ^-------^ SC2128 (warning): Expanding an array without an index only gives the first element.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 21:
           echo "kill residual processes: kill -9 ${be_pid}"
                                                  ^-------^ SC2128 (warning): Expanding an array without an index only gives the first element.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh line 22:
           kill -9 $be_pid
                   ^-----^ SC2128 (warning): Expanding an array without an index only gives the first element.
                   ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           kill -9 "$be_pid"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 29:
       while [ 1 -eq 1 ]
             ^---------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                 ^-^ SC2050 (warning): This expression is constant. Did you forget the $ on a variable?
   
   Did you mean: 
       while [[ 1 -eq 1 ]]
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 32:
           res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
                ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                              ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                            ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                    ^-------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^---^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files?per_page="$per_page"\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 35:
           if [ ${res_len} -ne 0 ];then
              ^------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           if [[ "${res_len}" -ne 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 36:
               let page+=1
               ^---------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 38:
               files=(${res[@]} ${files[*]})
                      ^-------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
                                ^---------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 54:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 58:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 61:
   	file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 62:
           file_type=$(echo $file|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
                            ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                            ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_type=$(echo "$file"|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 64:
   	if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]];then
                 ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                     ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                           ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ ${file_type} == "cpp" || ${file_type} == "c" || ${file_type} == "java" || ${file_type} == "py" || ${file_type} == "h" || ${file_type} == 'js' ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 68:
   	if [[ "check$file_dir" == "check${module}" ]];then
                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ "check${file_dir}" == "check${module}" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 69:
               let module_file+=1
               ^----------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 89:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 98:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 101:
   	echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 102:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 103:
   	if [[ $file_dir == "docs" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	if [[ ${file_dir} == "docs" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 104:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 106:
           if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]];then
                  ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                              ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ "${file}" =~ "docs/zh-CN/docs/sql-manual/" || "${file}" =~ "docs/en/docs/sql-manual/" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 107:
               let doc_sql_manual_num+=1
               ^-----------------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 120:
       echo "doc_num: $doc_num"
                      ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "doc_num: ${doc_num}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 121:
       echo "file_nums: $file_nums"
                        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "file_nums: ${file_nums}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 122:
       echo "doc_sql_manual_num: $doc_sql_manual_num"
                                 ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "doc_sql_manual_num: ${doc_sql_manual_num}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 123:
       if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} && ${doc_sql_manual_num} -eq 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 138:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 146:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 148:
           echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 150:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 151:
           if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "be" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 152:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 156:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 171:
       res=($(get_all_change_files $pr_id))
            ^----------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                   ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=($(get_all_change_files "$pr_id"))
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 179:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 181:
           echo "$file"
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           echo "${file}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 183:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 184:
           if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "fe" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 185:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 189:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 200:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 203:
   	    check_removed_change_file $2 "be"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "be"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 205:
   	    check_all_change_files_is_under_be $2
                                                  ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_be "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 207:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 208:
   	    echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 209:
   	    res=`expr $check_1 \* $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    res=$(expr "$check_1" \* $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 210:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 213:
   	    check_removed_change_file $2 "fe"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "fe"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 215:
   	    check_all_change_files_is_under_fe $2
                                                  ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_fe "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 217:
               res=`expr $check_1 \* $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
               res=$(expr "$check_1" \* $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 218:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 219:
   	    echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 220:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 223:
   	    check_removed_change_file $2 "docs"
                                         ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_removed_change_file "$2" "docs"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 225:
   	    check_all_change_files_is_under_doc $2
                                                   ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	    check_all_change_files_is_under_doc "$2"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 227:
               res=`expr $check_1 + $check_2`
               ^-^ SC2178 (warning): Variable was used as an array but is now assigned a string.
                   ^------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                    ^--^ SC2003 (style): expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                    ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                    ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
               res=$(expr "$check_1" + $check_2)
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 228:
   	    echo ${check_1}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   	    echo "${check_1}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 229:
               echo ${check_2}
                    ^--------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
               echo "${check_2}"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 230:
   	    exit $res
                    ^--^ SC2128 (warning): Expanding an array without an index only gives the first element.
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	    exit "$res"
   
   
   In teamcity/doris/benchmark/clickbench/common/check_change_file.sh line 238:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 6:
   echo `date "+%Y-%m-%d %H:%M:%S"` "start to clear oudate file!"
        ^-------------------------^ SC2046 (warning): Quote this to prevent word splitting.
        ^-------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
   
   Did you mean: 
   echo $(date "+%Y-%m-%d %H:%M:%S") "start to clear oudate file!"
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 7:
   cd /home/work/teamcity/TeamCity/piplineWork/Compile/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/Compile/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 8:
   find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                         ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 9:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   ^--^ SC2103 (info): Use a ( subshell ) to avoid having to cd back.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 10:
   cd /home/work/teamcity/TeamCity/piplineWork/feUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/feUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 11:
   find /home/work/teamcity/TeamCity/piplineWork/feUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/feUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 12:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 13:
   cd /home/work/teamcity/TeamCity/piplineWork/beUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /home/work/teamcity/TeamCity/piplineWork/beUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 14:
   find /home/work/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /home/work/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 15:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 16:
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 17:
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                         ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 18:
   cd -
   ^--^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd - || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 19:
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/
   ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
   
   Did you mean: 
   cd /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ || exit
   
   
   In teamcity/doris/benchmark/clickbench/common/clean_disk.sh line 20:
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
                                                                                      ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
   
   Did you mean: 
   find /mnt/ssd01/teamcity/TeamCity/piplineWork/beUt/ -maxdepth 1 -mindepth 1 -mmin +"${existsTime}" -type d -name "*_*" -exec rm -rf {} \;
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_compile.sh line 3:
   id=$(echo $RANDOM)
      ^-------------^ SC2116 (style): Useless echo? Instead of 'cmd $(echo foo)', just use 'cmd foo'.
             ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
             ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   id=$(echo "$RANDOM")
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_compile.sh line 5:
   docker run -i --rm --name doris-compile-$id -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v $work_path:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
                                           ^-^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                           ^-^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                                    ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   docker run -i --rm --name doris-compile-"$id" -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v $work_path:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 40:
       docker_name="doris-compile-"$(echo $RANDOM)
                                  ^-- SC1078 (warning): Did you forget to close this double quoted string?
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 42:
       cmd="docker run -i --rm --name doris-compile-$id -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro -v /home/work/.m2:/root/.m2 -v /home/work/.npm:/root/.npm -v %system.teamcity.build.workingDir%:/root/doris apache/incubator-doris:build-env-ldb-toolchain-latest /bin/bash -c "cd /root/doris && sh builds.sh"
           ^-- SC1079 (info): This is actually an end quote, but due to next char it looks suspect.
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 43:
   "
   ^-- SC1073 (error): Couldn't parse this double quoted string. Fix to allow more checks.
   ^-- SC1009 (info): The mentioned syntax error was in this simple command.
   
   
   In teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh line 45:
   
   ^-- SC1072 (error): Expected end of double quoted string. Fix any mentioned problems and try again.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 5:
   <<'COMMENT'
   ^---------^ SC2188 (warning): This redirection doesn't have a command. Move to its command (or use 'true' as no-op).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 145:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 147:
           --cancel_running_build) build_id=$2; cancel_running_build $build_id; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --cancel_running_build) build_id=$2; cancel_running_build "$build_id"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 148:
           --cancel_pending_build) build_id=$2; cancel_pending_build $build_id; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --cancel_pending_build) build_id=$2; cancel_pending_build "$build_id"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 149:
           --show_build_state) build_id=$2; res=$(show_build_state $build_id); echo $res; shift ;;
                                                                   ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                   ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --show_build_state) build_id=$2; res=$(show_build_state "$build_id"); echo $res; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 150:
           --show_build_status) build_id=$2; res=$(show_build_status $build_id); echo $res; shift ;;
                                                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                     ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                      ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                      ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           --show_build_status) build_id=$2; res=$(show_build_status "$build_id"); echo $res; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 153:
           --get_all_builds_of_pr_id) get_all_builds $2; shift ;;
                                                     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --get_all_builds_of_pr_id) get_all_builds "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_api.sh line 161:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 4:
   zcp_TOKEN="eyJ0eXAiOiAiVENWMiJ9.bW1DcHJpRWNCSktnREhLaHd5Y1lndmpycnJ3.NmEwM2E3YTEtMTVmYy00NGU0LWI1OTAtMzU3MzljODE0Njdk"
   ^-------^ SC2034 (warning): zcp_TOKEN appears unused. Verify use (or export if used externally).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 7:
   zcp_TEAMCITY_SERVER="http://43.129.232.36:8111"
   ^-----------------^ SC2034 (warning): zcp_TEAMCITY_SERVER appears unused. Verify use (or export if used externally).
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 40:
       state=$(show_build_state $build_id)
                                ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(show_build_state "$build_id")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 41:
       if [[ $state == "running" ]];then
             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${state} == "running" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 43:
           cmd="/app/rest/builds/id:$build_id"
                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd="/app/rest/builds/id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 44:
           cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
               ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd=${cmd}" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 45:
           url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                        ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                  ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                 ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                          ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                           ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 46:
           res=$(eval $eval)
                      ^---^ SC2154 (warning): eval is referenced but not assigned (for output from commands, use "$(eval ...)" ).
                      ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=$(eval "$eval")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 47:
           check=$(echo $res |grep status="UNKNOWN")
                        ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                        ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check=$(echo "$res" |grep status="UNKNOWN")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 48:
           if [[ -z $check ]];then
                    ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ -z ${check} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 57:
       state=$(show_build_state $build_id)
                                ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(show_build_state "$build_id")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 58:
       if [[ $state == "queued" ]];then
             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${state} == "queued" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 59:
           cmd="app/rest/buildQueue/id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd="app/rest/buildQueue/id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 60:
           cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
               ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           cmd=${cmd}" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 61:
           url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                        ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                  ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                 ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                          ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                           ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 63:
           res=$(eval $eval)
                      ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           res=$(eval "$eval")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 64:
           check=$(echo $res |grep status="UNKNOWN")
                        ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                        ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           check=$(echo "$res" |grep status="UNKNOWN")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 65:
           if [[ -z $check ]];then
                    ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ -z ${check} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 73:
       cmd="app/rest/builds?locator=id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 74:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 76:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 79:
       check=$(echo $res|grep "<builds count=\"1\"")
                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       check=$(echo "$res"|grep "<builds count=\"1\"")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 80:
       if [[ -z $check ]]; then
                ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ -z ${check} ]]; then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 84:
       state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                   ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(echo "$res" |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g')
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 86:
       echo $state
            ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "$state"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 91:
       cmd="app/rest/builds?locator=id:$build_id"
                                       ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=id:${build_id}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 92:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 94:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 96:
       check1=$(echo $res|grep "<builds count=\"1\"")
                     ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                     ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       check1=$(echo "$res"|grep "<builds count=\"1\"")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 97:
       if [[ -z $check1 ]]; then
                ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ -z ${check1} ]]; then
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 105:
       state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                   ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                   ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       state=$(echo "$res" |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g')
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 107:
       echo $state
            ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       echo "$state"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 112:
       cmd="app/rest/builds?locator=branch:$branch"
                                           ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       cmd="app/rest/builds?locator=branch:${branch}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 113:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 114:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 119:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                           ^-^ SC2089 (warning): Quotes/backslashes will be treated literally. Use an array.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 121:
       res=eval $url
       ^-----------^ SC2209 (warning): Use var=$(command) to assign output (or quote to assign string).
                ^--^ SC2090 (warning): Quotes/backslashes in this variable will not be respected.
                ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=eval ${url}
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 126:
       url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $JSON_HEADER $TEAMCITY_SERVER/$cmd"
                    ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                             ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                      ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                   ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                    ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       url="curl -s ${HEADER} \"${AUTHORIZATION} ${TOKEN}\" ${JSON_HEADER} ${TEAMCITY_SERVER}/${cmd}"
   
   
   In teamcity/doris/benchmark/clickbench/common/teamcity_common.sh line 128:
       res=`eval $url`
           ^---------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       res=$(eval "$url")
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 12:
       while [ 1 -eq 1 ]
             ^---------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                 ^-^ SC2050 (warning): This expression is constant. Did you forget the $ on a variable?
   
   Did you mean: 
       while [[ 1 -eq 1 ]]
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 15:
   	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
                ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                              ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                            ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                                    ^-------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                    ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                                                                    ^---^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                                                                                                                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
   	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files?per_page="$per_page"\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 17:
           if [ ${res_len} -ne 0 ];then
              ^------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           if [[ "${res_len}" -ne 0 ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 18:
   	    let page+=1
               ^---------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 20:
   	    files=(${res[@]} ${files[*]})
                      ^-------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
                                ^---------^ SC2206 (warning): Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
   
   
   In teamcity/doris/benchmark/clickbench/common/test.sh line 30:
   out=($(get_all_change_files 11154))
        ^---------------------------^ SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check.sh line 3:
   <<'COMMENT'
   ^---------^ SC2188 (warning): This redirection doesn't have a command. Move to its command (or use 'true' as no-op).
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 26:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 30:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 33:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 34:
           if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                        ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 35:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 46:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 60:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 65:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 68:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 69:
           if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "be" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 70:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 74:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 88:
       res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
            ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
                                                ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                       ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
       res=($(curl https://api.github.com/repos/"${owner}"/"${repo}"/pulls/"${pr_id}"/files|jq -r '.[]|select(.status != "removed")| .filename'))
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 93:
       for file in ${res[@]}
                   ^-------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 96:
           file_dir=$(echo $file|cut -d '/' -f 1)
                           ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           file_dir=$(echo "$file"|cut -d '/' -f 1)
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 97:
           if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
                 ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                             ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
           if [[ ${file_dir} == "fe" || ${file_dir} == "docs" || ${file_dir} == "fs_brokers" ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 98:
               let doc_num+=1
               ^------------^ SC2219 (style): Instead of 'let expr', prefer (( expr )) .
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 102:
       if [[ $doc_num -eq $file_nums ]];then
             ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
   
   Did you mean: 
       if [[ ${doc_num} -eq ${file_nums} ]];then
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 113:
   if [ $# > 0 ]; then
      ^--------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^-- SC2071 (error): > is for string comparisons. Use -gt instead.
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 115:
           --is_modify_only_invoved_be) check_all_change_files_is_under_be $2; shift ;;
                                                                           ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --is_modify_only_invoved_be) check_all_change_files_is_under_be "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 116:
           --is_modify_only_invoved_fe) check_all_change_files_is_under_fe $2; shift ;;
                                                                           ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
           --is_modify_only_invoved_fe) check_all_change_files_is_under_fe "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 117:
   	--is_modify_only_doc) check_all_change_files_is_under_doc $2; shift ;;
                                                                     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
   
   Did you mean: 
   	--is_modify_only_doc) check_all_change_files_is_under_doc "$2"; shift ;;
   
   
   In teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh line 124:
   main $@
        ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.
   
   For more information:
     https://www.shellcheck.net/wiki/SC2068 -- Double quote array expansions to ...
     https://www.shellcheck.net/wiki/SC2071 -- > is for string comparisons. Use ...
     https://www.shellcheck.net/wiki/SC1078 -- Did you forget to close this doub...
   ----------
   
   You can address the above issues in one of three ways:
   1. Manually correct the issue in the offending shell script;
   2. Disable specific issues by adding the comment:
     # shellcheck disable=NNNN
   above the line that contains the issue, where NNNN is the error code;
   3. Add '-e NNNN' to the SHELLCHECK_OPTS setting in your .yml action file.
   
   
   
   ```
   </details>
   
   <details>
   <summary>shfmt errors</summary>
   
   ```
   
   'shfmt ' returned error 1 finding the following formatting issues:
   
   ----------
   --- teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/check_and_kill_deleted_proc.sh
   @@ -8,23 +8,22 @@
    echo "===================================="
    echo "START TO DETECT RESIDUAL PROCESSES!"
    
   -check=$(lsof -i:$port|awk '{print $2}'|wc -l)
   -if [ "check$check" != "check0" ];then
   -    if [ "check"${case_level} == "check" ];then
   -        check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep deleted||wc -l)
   +check=$(lsof -i:$port | awk '{print $2}' | wc -l)
   +if [ "check$check" != "check0" ]; then
   +    if [ "check"${case_level} == "check" ]; then
   +        check_res=$(pwdx $(lsof -i:$port | grep -v PID | awk '{print $2}') | grep $env_name | grep deleted || wc -l)
        else
   -        check_res=$(pwdx `lsof -i:$port|grep -v PID|awk '{print $2}'`|grep $env_name|grep $case_level|grep deleted||wc -l)
   +        check_res=$(pwdx $(lsof -i:$port | grep -v PID | awk '{print $2}') | grep $env_name | grep $case_level | grep deleted || wc -l)
        fi
   -    if [ "check$check_res" != "check0" ];then
   -        be_pid=(`lsof -i:$port|grep -v PID|awk '{print $2}'`)
   +    if [ "check$check_res" != "check0" ]; then
   +        be_pid=($(lsof -i:$port | grep -v PID | awk '{print $2}'))
            echo "Detected residual processes: ${be_pid}"
            echo "kill residual processes: kill -9 ${be_pid}"
            kill -9 $be_pid
        fi
    else
   -        echo "No residual processes"
   +    echo "No residual processes"
    fi
    
   -
    echo "FINISH DETECT RESIDUAL PROCESSES!"
    echo "==================================="
   --- teamcity/doris/benchmark/clickbench/common/check_change_file.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/check_change_file.sh
   @@ -7,7 +7,7 @@
    GITHUB_TOKEN=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
    
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
    
   @@ -16,23 +16,21 @@
        $0 --is_modify_only_invoved_fe pr_id          if pr changed code only invoved fe doc, fs_brocker, return 0; else return 2
        $0 --is_modify_only_invoved_doc pr_id         if pr changed code only invoved doc, fs_brocker, return 0; else return 2
      "
   -  exit 1
   +    exit 1
    }
    
   -
   -function get_all_change_files(){
   +function get_all_change_files() {
        pr_id=$1
        files=()
    
        page=1
        per_page=100
   -    while [ 1 -eq 1 ]
   -    do
   +    while [ 1 -eq 1 ]; do
            #echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   -        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   +        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page | jq -r '.[]|select(.status = "removed")| .filename'))
            res_len=${#res[@]}
            #echo "================"$res_len
   -        if [ ${res_len} -ne 0 ];then
   +        if [ ${res_len} -ne 0 ]; then
                let page+=1
                #files="${res[@]}""$files"
                files=(${res[@]} ${files[*]})
   @@ -44,8 +42,7 @@
        echo "${files[@]}"
    }
    
   -
   -function check_removed_change_file(){
   +function check_removed_change_file() {
        pr_id=$1
        module=$2
        owner='apache'
   @@ -55,26 +52,25 @@
        file_nums=${#res[@]}
        is_code_change_flag=false
        module_file=0
   -    for file in ${res[@]}
   -    do
   -	#echo "$file"
   -	file_dir=$(echo $file|cut -d '/' -f 1)
   -        file_type=$(echo $file|rev|cut -d / -f 1|cut -d '.' -f 1|rev)
   -	#if [[  "check$file_dir" == "check${module}" &&  ($file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js') ]];then
   -	if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]];then
   -	    echo "code has changed, ${file} is deleted"
   -	    is_code_change_flag=true
   -	fi
   -	if [[ "check$file_dir" == "check${module}" ]];then
   +    for file in ${res[@]}; do
   +        #echo "$file"
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        file_type=$(echo $file | rev | cut -d / -f 1 | cut -d '.' -f 1 | rev)
   +        #if [[  "check$file_dir" == "check${module}" &&  ($file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js') ]];then
   +        if [[ $file_type == "cpp" || $file_type == "c" || $file_type == "java" || $file_type == "py" || $file_type == "h" || $file_type == 'js' ]]; then
   +            echo "code has changed, ${file} is deleted"
   +            is_code_change_flag=true
   +        fi
   +        if [[ "check$file_dir" == "check${module}" ]]; then
                let module_file+=1
   -	fi
   +        fi
        done
    
   -    if [[ "${is_code_change_flag}" == "false" ]];then
   -	echo "NO CODE FILE DELETED, PASSED!"
   +    if [[ "${is_code_change_flag}" == "false" ]]; then
   +        echo "NO CODE FILE DELETED, PASSED!"
            return 0
        else
   -	echo "CODE FILE BE DELETED"
   +        echo "CODE FILE BE DELETED"
            return 2
        fi
    
   @@ -95,20 +91,18 @@
    
        doc_num=0
        doc_sql_manual_num=0
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on docs/fs_brokers or not
   -	echo "$file"
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -	if [[ $file_dir == "docs" ]];then
   +        echo "$file"
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "docs" ]]; then
                let doc_num+=1
   -	fi
   -        if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]];then
   +        fi
   +        if [[ "$file" =~ "docs/zh-CN/docs/sql-manual/" || "$file" =~ "docs/en/docs/sql-manual/" ]]; then
                let doc_sql_manual_num+=1
                continue
            fi
    
   -
            #check change file is md/txt/doc file
            #file_type=$(echo $file|cut -d '.' -f 2)
            #if [[ $file_type == "md" || $file_type == "txt" || $file_type == "doc" ]];then
   @@ -120,7 +114,7 @@
        echo "doc_num: $doc_num"
        echo "file_nums: $file_nums"
        echo "doc_sql_manual_num: $doc_sql_manual_num"
   -    if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]];then
   +    if [[ $doc_num -eq $file_nums && $doc_sql_manual_num -eq 0 ]]; then
            echo "JUST MODIFY DOCUMENT, NO COED CHSNGED, PASSED!"
            return 0
        else
   @@ -143,17 +137,16 @@
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED BE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            echo "$file"
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
   -	fi
   +        fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY BE CODE, NO NEED RUN FE UT, PASSED!"
            return 0
        else
   @@ -176,17 +169,16 @@
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED FE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            echo "$file"
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY FE CODE, NO NEED RUN BE UT, PASSED!"
            return 0
        else
   @@ -197,42 +189,49 @@
    
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in
   +    if [ $# ] >0; then
   +        case "$1" in
            --is_modify_only_invoved_be)
   -	    check_removed_change_file $2 "be"
   -	    check_1=$?
   -	    check_all_change_files_is_under_be $2
   -	    check_2=$?
   -	    echo ${check_1}
   -	    echo ${check_2}
   -	    res=`expr $check_1 \* $check_2`
   -	    exit $res
   -	    shift ;;
   +            check_removed_change_file $2 "be"
   +            check_1=$?
   +            check_all_change_files_is_under_be $2
   +            check_2=$?
   +            echo ${check_1}
   +            echo ${check_2}
   +            res=$(expr $check_1 \* $check_2)
   +            exit $res
   +            shift
   +            ;;
            --is_modify_only_invoved_fe)
   -	    check_removed_change_file $2 "fe"
   -	    check_1=$?
   -	    check_all_change_files_is_under_fe $2
   -	    check_2=$?
   -            res=`expr $check_1 \* $check_2`
   -	    echo ${check_1}
   -	    echo ${check_2}
   -	    exit $res
   -	    shift ;;
   -	--is_modify_only_invoved_doc)
   -	    check_removed_change_file $2 "docs"
   -	    check_1=$?
   -	    check_all_change_files_is_under_doc $2
   -	    check_2=$?
   -            res=`expr $check_1 + $check_2`
   -	    echo ${check_1}
   +            check_removed_change_file $2 "fe"
   +            check_1=$?
   +            check_all_change_files_is_under_fe $2
   +            check_2=$?
   +            res=$(expr $check_1 \* $check_2)
   +            echo ${check_1}
                echo ${check_2}
   -	    exit $res
   -	    shift ;;
   -        *) echo "ERROR"; usage; exit 1 ;;
   -    esac
   +            exit $res
   +            shift
   +            ;;
   +        --is_modify_only_invoved_doc)
   +            check_removed_change_file $2 "docs"
   +            check_1=$?
   +            check_all_change_files_is_under_doc $2
   +            check_2=$?
   +            res=$(expr $check_1 + $check_2)
   +            echo ${check_1}
   +            echo ${check_2}
   +            exit $res
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            usage
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/common/clean_disk.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/clean_disk.sh
   @@ -3,7 +3,7 @@
    df -h
    existsTime=720
    #delete files created 20 hours ago
   -echo `date "+%Y-%m-%d %H:%M:%S"` "start to clear oudate file!"
   +echo $(date "+%Y-%m-%d %H:%M:%S") "start to clear oudate file!"
    cd /home/work/teamcity/TeamCity/piplineWork/Compile/
    find /home/work/teamcity/TeamCity/piplineWork/Compile/ -maxdepth 1 -mindepth 1 -mmin +${existsTime} -type d -name "*_*" -exec rm -rf {} \;
    cd -
   teamcity/doris/benchmark/clickbench/common/docker_trigger_api.sh:43:1: reached EOF without closing quote "
   --- teamcity/doris/benchmark/clickbench/common/teamcity_api.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/teamcity_api.sh
   @@ -139,23 +139,55 @@
    }
    COMMENT
    
   -
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in 
   -        --cancel_running_build) build_id=$2; cancel_running_build $build_id; shift ;;
   -        --cancel_pending_build) build_id=$2; cancel_pending_build $build_id; shift ;;
   -        --show_build_state) build_id=$2; res=$(show_build_state $build_id); echo $res; shift ;;
   -        --show_build_status) build_id=$2; res=$(show_build_status $build_id); echo $res; shift ;;
   -        --show_latest_builds) get_latest_builds; shift ;;
   -        --show_queued_builds) get_queued_builds; shift ;;
   -        --get_all_builds_of_pr_id) get_all_builds $2; shift ;;
   -	--help) usage; shift ;;
   -        *) echo "ERROR"; exit 1 ;;
   -    esac
   +    if [ $# ] >0; then
   +        case "$1" in
   +        --cancel_running_build)
   +            build_id=$2
   +            cancel_running_build $build_id
   +            shift
   +            ;;
   +        --cancel_pending_build)
   +            build_id=$2
   +            cancel_pending_build $build_id
   +            shift
   +            ;;
   +        --show_build_state)
   +            build_id=$2
   +            res=$(show_build_state $build_id)
   +            echo $res
   +            shift
   +            ;;
   +        --show_build_status)
   +            build_id=$2
   +            res=$(show_build_status $build_id)
   +            echo $res
   +            shift
   +            ;;
   +        --show_latest_builds)
   +            get_latest_builds
   +            shift
   +            ;;
   +        --show_queued_builds)
   +            get_queued_builds
   +            shift
   +            ;;
   +        --get_all_builds_of_pr_id)
   +            get_all_builds $2
   +            shift
   +            ;;
   +        --help)
   +            usage
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/common/teamcity_common.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/teamcity_common.sh
   @@ -11,7 +11,7 @@
    JSON_HEADER="--header \"Accept: application/json\""
    
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
         --cancel_running_build build_id    cancel a specific running build
   @@ -32,21 +32,21 @@
        $0 --show_queued_builds             show all queued builds
        $0 --get_all_builds_of_pr_id 9151   get all 9151 builds
      "
   -  exit 1
   +    exit 1
    }
    
    cancel_running_build() {
        build_id=$1
        state=$(show_build_state $build_id)
   -    if [[ $state == "running" ]];then
   +    if [[ $state == "running" ]]; then
            #curl --header "Authorization: Bearer eyJ0eXAiOiAiVENWMiJ9.bW1DcHJpRWNCSktnREhLaHd5Y1lndmpycnJ3.NmEwM2E3YTEtMTVmYy00NGU0LWI1OTAtMzU3MzljODE0Njdk" http://43.129.232.36:8111/app/rest/builds/id:333 -X POST -H 'Content-Type: application/json' -d '{ "buildCancelRequest": {       "comment": "Already running builds will be stopped.",      "readdIntoQueue": "false"    }  }'
            cmd="/app/rest/builds/id:$build_id"
            cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Stop obsolete running builds.\",      \"readdIntoQueue\": \"false\"    }  }'"
            url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
            res=$(eval $eval)
   -        check=$(echo $res |grep status="UNKNOWN")
   -        if [[ -z $check ]];then
   -           echo "cancel fail!"
   +        check=$(echo $res | grep status="UNKNOWN")
   +        if [[ -z $check ]]; then
   +            echo "cancel fail!"
            fi
        fi
    
   @@ -55,15 +55,15 @@
    cancel_pending_build() {
        build_id=$1
        state=$(show_build_state $build_id)
   -    if [[ $state == "queued" ]];then
   +    if [[ $state == "queued" ]]; then
            cmd="app/rest/buildQueue/id:$build_id"
            cmd=$cmd" -X POST -H \'Content-Type: application/json\' -d \'{ \"buildCancelRequest\": {       \"comment\": \"Cancel obsolete queue build.\",      \"readdIntoQueue\": \"false\"    }  }'"
            url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
            #echo $url
            res=$(eval $eval)
   -        check=$(echo $res |grep status="UNKNOWN")
   -        if [[ -z $check ]];then
   -           echo "cancel fail!"
   +        check=$(echo $res | grep status="UNKNOWN")
   +        if [[ -z $check ]]; then
   +            echo "cancel fail!"
            fi
        fi
    }
   @@ -73,15 +73,15 @@
        cmd="app/rest/builds?locator=id:$build_id"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   -    
   +    res=$(eval $url)
   +
        #check build exist or not
   -    check=$(echo $res|grep "<builds count=\"1\"")
   +    check=$(echo $res | grep "<builds count=\"1\"")
        if [[ -z $check ]]; then
            return
        fi
        #get state
   -    state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "state=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
   +    state=$(echo $res | awk -F ' ' '{print $9" "$10" "$11}' | awk -F "state=" '{print $2}' | cut -d ' ' -f 1 | sed 's/\"//g')
        #only 2 state: queued and finished
        echo $state
    }
   @@ -91,9 +91,9 @@
        cmd="app/rest/builds?locator=id:$build_id"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   +    res=$(eval $url)
        #check build exist or not
   -    check1=$(echo $res|grep "<builds count=\"1\"")
   +    check1=$(echo $res | grep "<builds count=\"1\"")
        if [[ -z $check1 ]]; then
            return
        fi
   @@ -102,8 +102,8 @@
        #if [[ -z $check ]]; then
        #    return
        #fi
   -    state=`echo $res |awk -F ' ' '{print $9" "$10" "$11}'|awk -F "status=" '{print $2}'|cut -d ' ' -f 1|sed 's/\"//g'`
   -    #only 2 state: 
   +    state=$(echo $res | awk -F ' ' '{print $9" "$10" "$11}' | awk -F "status=" '{print $2}' | cut -d ' ' -f 1 | sed 's/\"//g')
   +    #only 2 state:
        echo $state
    }
    
   @@ -111,7 +111,7 @@
        branch=$1
        cmd="app/rest/builds?locator=branch:$branch"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $TEAMCITY_SERVER/$cmd"
   -    res=`eval $url`
   +    res=$(eval $url)
    }
    
    get_latest_builds() {
   @@ -125,14 +125,12 @@
        cmd="app/rest/buildQueue"
        url="curl -s $HEADER \"$AUTHORIZATION $TOKEN\" $JSON_HEADER $TEAMCITY_SERVER/$cmd"
        #echo $url
   -    res=`eval $url`
   +    res=$(eval $url)
        #a=$(echo $res|grep -oP 'build id=.*'|head -1)
   -    
   -    
   +
        #a=$res
        #while [[ "check"$a != "check" ]]
        #do
        #    a=$(echo $a|awk -F 'build id="' '{print $2}')
        #done
    }
   -
   --- teamcity/doris/benchmark/clickbench/common/test.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/test.sh
   @@ -3,33 +3,29 @@
    repo=doris
    GITHUB_TOKEN=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
    
   -function get_all_change_files(){
   +function get_all_change_files() {
        pr_id=$1
        files=()
    
        page=1
        per_page=100
   -    while [ 1 -eq 1 ]
   -    do
   -	#echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   -	res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page|jq -r '.[]|select(.status = "removed")| .filename'))
   +    while [ 1 -eq 1 ]; do
   +        #echo "curl --header 'authorization: Bearer ${GITHUB_TOKEN}' https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page"
   +        res=($(curl --header "authorization: Bearer ${GITHUB_TOKEN}" https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files?per_page=$per_page\&page=$page | jq -r '.[]|select(.status = "removed")| .filename'))
            res_len=${#res[@]}
   -        if [ ${res_len} -ne 0 ];then
   -	    let page+=1
   +        if [ ${res_len} -ne 0 ]; then
   +            let page+=1
                #files="${res[@]}""$files"
   -	    files=(${res[@]} ${files[*]})
   +            files=(${res[@]} ${files[*]})
            else
                break
            fi
   -	echo 
   +        echo
        done
        echo "${files[@]}"
    }
    
   -
    out=($(get_all_change_files 11154))
    
   -
   -
    echo "=================="
    echo "${out[@]}"
   --- teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh.orig
   +++ teamcity/doris/benchmark/clickbench/common/zcp_check_change_file.sh
   @@ -3,9 +3,8 @@
    #res=(`git diff --name-only HEAD~ HEAD`)
    #file_nums=${#res[@]}
    
   -
    usage() {
   -  echo "
   +    echo "
    Usage: $0 <options>
      Optional options:
    
   @@ -14,24 +13,22 @@
        $0 --is_modify_only_invoved_fe pr_id          if pr changed code only invoved fe doc, fs_brocker, return 0; else return 2
        $0 --is_modify_only_invoved_doc pr_id         if pr changed code only invoved doc, fs_brocker, return 0; else return 2
      "
   -  exit 1
   +    exit 1
    }
    
   -
    function check_all_change_files_is_under_doc() {
    
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on docs/fs_brokers or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
   @@ -43,7 +40,7 @@
            #fi
        done
    
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY DOCUMENT, NO COED CHSNGED, PASSED!"
            exit 0
        else
   @@ -57,21 +54,20 @@
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED BE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "be" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
   -	fi
   +        fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY BE CODE, NO NEED RUN FE UT, PASSED!"
            exit 0
        else
   @@ -85,21 +81,20 @@
        pr_id=$1
        owner='apache'
        repo='incubator-doris'
   -    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files|jq -r '.[]|select(.status != "removed")| .filename'))
   +    res=($(curl https://api.github.com/repos/${owner}/${repo}/pulls/${pr_id}/files | jq -r '.[]|select(.status != "removed")| .filename'))
        file_nums=${#res[@]}
    
        doc_num=0
        echo "START CHECK CODE IS ONLY RELATED FE OR NOT"
   -    for file in ${res[@]}
   -    do
   +    for file in ${res[@]}; do
            #check change file is on be or not
   -        file_dir=$(echo $file|cut -d '/' -f 1)
   -        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]];then
   +        file_dir=$(echo $file | cut -d '/' -f 1)
   +        if [[ $file_dir == "fe" || $file_dir == "docs" || $file_dir == "fs_brokers" ]]; then
                let doc_num+=1
                continue
            fi
        done
   -    if [[ $doc_num -eq $file_nums ]];then
   +    if [[ $doc_num -eq $file_nums ]]; then
            echo "JUST MODIFY FE CODE, NO NEED RUN BE UT, PASSED!"
            exit 0
        else
   @@ -110,15 +105,28 @@
    
    main() {
    
   -if [ $# > 0 ]; then
   -    case "$1" in
   -        --is_modify_only_invoved_be) check_all_change_files_is_under_be $2; shift ;;
   -        --is_modify_only_invoved_fe) check_all_change_files_is_under_fe $2; shift ;;
   -	--is_modify_only_doc) check_all_change_files_is_under_doc $2; shift ;;
   -        *) echo "ERROR"; usage; exit 1 ;;
   -    esac
   +    if [ $# ] >0; then
   +        case "$1" in
   +        --is_modify_only_invoved_be)
   +            check_all_change_files_is_under_be $2
   +            shift
   +            ;;
   +        --is_modify_only_invoved_fe)
   +            check_all_change_files_is_under_fe $2
   +            shift
   +            ;;
   +        --is_modify_only_doc)
   +            check_all_change_files_is_under_doc $2
   +            shift
   +            ;;
   +        *)
   +            echo "ERROR"
   +            usage
   +            exit 1
   +            ;;
   +        esac
    
   -fi
   +    fi
    }
    
    main $@
   --- teamcity/doris/benchmark/clickbench/prepare.sh.orig
   +++ teamcity/doris/benchmark/clickbench/prepare.sh
   @@ -22,4 +22,3 @@
    fi
    qa_home="${pipeline_home}/selectdb-qa"
    cd "${qa_home}" && git stash && git checkout main && git pull && cd -
   -
   ----------
   
   You can reformat the above files to meet shfmt's requirements by typing:
   
     shfmt  -w filename
   
   
   ```
   </details>
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org