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