스크립트를 실행하는 단계가 포함된 Jenkins 파이프라인이 있습니다 sh
. 이와 유사하지만 그 사이에 더 많은 관련 없는 명령이 있습니다.
steps {
echo 'Running build with all parameters'
sh '''
#!/bin/bash
declare -A tests
...등
CentOS의 Jenkins 노드에서 실행하면 모든 것이 정상이며 파이프라인은 모든 단계/명령으로 성공적으로 실행됩니다. 하지만 Ubuntu를 사용하여 Jenkins 노드에서 동일한 파이프라인을 실행하면 다음 오류가 발생합니다.
+ declare -A tests
/opt/jenkins-slave/workdir/workspace/Metaweb@tmp/durable-9a389b8a/script.sh: 14: declare: not found
어떤 아이디어가 있나요?
답변1
현재 스크립트를 작성하는 방법에 따라 shebang 앞에 매우 미묘한 개행 문자가 있습니다. 줄바꿈을 명시적으로 만들려면 다음을 수행하세요.
sh '''\n
#!/bin/bash\n
\n
declare -A tests\n
shebang이 올바르게 해석되려면 스크립트의 첫 번째 줄에 있어야 하므로 다음과 같이 선행 줄바꿈을 제거해야 합니다.
sh '''#!/bin/bash
declare -A tests