Jenkins 쉘 빌드 단계에서 명령 결과를 변수에 저장하는 방법

Jenkins 쉘 빌드 단계에서 명령 결과를 변수에 저장하는 방법

Jenkins 작업에서 이 스크립트를 실행하고 싶습니다. 내 목표는 cat 출력을 변수에 저장하여 다른 곳에서 사용할 수 있도록 하는 것입니다.

#!/bin/bash
ssh myserver.com  <<EOF
echo "Start."
CYCLE=$(cat /path/myfile.txt)
echo $CYCLE
...
echo "End."
exit
EOF

Jenkins 로그에 다음 오류가 표시됩니다. cat: /path/myfile.txt: No such file or directory

터미널 콘솔에서 동일한 명령을 성공적으로 실행할 수 있습니다. $(cat /path/myfile.txt)원격 서버에 연결되기 전에 명령이 실행되는 것 같습니다 .https://stackoverflow.com/a/34074453/4565322. 그리고 "시작". 오류 메시지 앞에 나타나야 하지만 오류 메시지 뒤에 인쇄됩니다.

서버 연결이 설정될 때까지 cat 명령이 실행될 때까지 기다리도록 스크립트에 어떻게 지시합니까?

답변1

이 명령은 작은따옴표를 사용하여 작동합니다.

ssh yourserver 'echo "Start.";CYCLE=$(cat /your/file); echo $CYCLE; echo "End."'

반품

ssh yourserver  <<'EOF'
echo "Start."
CYCLE="$(cat /your/file)"
echo $CYCLE
echo "End."
EOF

관련 정보