특수 문자가 포함된 긴 명령을 여러 줄 명령으로 분할하는 방법은 무엇입니까?

특수 문자가 포함된 긴 명령을 여러 줄 명령으로 분할하는 방법은 무엇입니까?

나는 gitlab의 문서를 읽었습니다.

제 경우에는 특수 문자(콜론 ":")가 있어서 다음 내용도 읽었습니다.

이제 내 질문은: 이 둘을 결합하는 방법은 무엇입니까?

한편으로는 나는 (인용하다):

job name:
  script:
    - |
      for file in *; do
        echo "$file";
        echo "${REPO}/${file}";
      done

반면에 나는 (인용하다):

  script:
    - 'for file in *; do curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file "${file}" "${REPO}/${file}"; done'

이 둘을 어떻게 결합하나요? 장기적인 해결책은 for루프의 오류를 다음과 같이 처리하는 것입니다.인용하다):

    - 'http_code=$(curl -o /dev/null -s -w "%{http_code}" --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file "$file" "${REPO}/${file}")'
    - if [ $http_code -ne 201 ]; then echo "Upload failed: terminating" && false; fi;

답변1

variables구간 내 특수문자 이동 문제를 단순화시켰습니다 . YAML은 여전히 ​​작동하지만 이렇게 하면 증상이 해결되는 것 같습니다.

job name:
  variables:
    token: "JOB-TOKEN: $CI_JOB_TOKEN"
  script:
    - |
      for file in *; do
        http_code=$(curl -o /dev/null -s -w "%{http_code}" --header "$token" --upload-file "$file" "${REPO}/${file}")
        if [ $http_code -ne 201 ]; then echo "Upload failed for $file" && false; fi;
      done

관련 정보