语法错误:文件意外结束(预期"fi")



所以我有一个在IF语句中运行的简单脚本。我总是得到:语法错误:意外的文件结尾(应为"fi"(我想知道可能的解决方案是什么?

def call(Map config) {
withCredentials([[$class: 'AmazonWebServicesCredentialsBinding', credentialsId: 'JENKINS_AWS'],
sshUserPrivateKey(credentialsId: 'JENKINS-SSH', keyFileVariable: 'SSH_KEY')]) {
sh """
#!/bin/bash
source add_ssh_key "${SSH_KEY}"           
source init_env "${TARGET_STAGE}"
source create-bastion-pod "${PROMETHEUS_PUSHGATEWAY}" "${PROMETHEUS_PUSHGATEWAY_PORT}"  
if [ ${TARGET_STAGE} == 'dev' ]; then
cat <<-EOF | curl --data-binary @- ${BASTION_URL}/metrics/job/sone_job 
# TYPE some_metric counter
some_metric{label="val1"} 42 
EOF
fi
delete-bastion-pod
"""
}
}

<<-仅从此处文档中剥离选项卡;您的结束分隔符似乎缩进了几个空格(根据Groovy实际向shell显示的内容(。试试之类的东西

sh """
#!/bin/bash
if [ ${TARGET_STAGE} == 'dev' ]; then
cat <<EOF | curl --data-binary @- ${BASTION_URL}/metrics/job/some_job 
# TYPE some_metric counter
some_metric{label="val1"} 42 
EOF
fi
"""

注意,就执行脚本的shell而言,here文档和结束的EOF根本没有缩进。

最新更新