You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins流水线中Bash脚本语法问题求助

脚本执行求助

我需要执行以下脚本:

sh """#!/bin/bash -xe
source ${rcfile}
serverName=$(openstack server list --name openstack-cluster-smoketest-${env.BUILD_NUMBER}-${hostname})
count=0
limit=6
while [ ! -z $serverName || $count -gt $limit ]
do 
  openstack server delete openstack-cluster-smoketest-${env.BUILD_NUMBER}-${hostname}
  count=$((count + 1))
  sleep 10s
  serverName=$(openstack server list --name openstack-cluster-smoketest-${env.BUILD_NUMBER}-${hostname})
done
if [ $count -eq $limit ]; then
  exit 1
fi
"""

相关说明:

  • 我已经尝试过单引号和双引号的组合,清楚字符串插值需要使用双引号。
  • 确认source ${rcfile}操作完全正常,此前在另一个shell块中运行以下脚本无任何问题:
sh """#!/bin/bash -xe
source ${rcfile}
openstack server delete openstack-cluster-smoketest-${env.BUILD_NUMBER}-${hostname}
"""
  • 另外,在source rcfile并创建名称为openstack-cluster-smoketest-${env.BUILD_NUMBER}-${hostname}的实例后,单独运行以下脚本片段,能够成功获取Jenkins流水线阶段中的build_number和hostname:
sh """#!/bin/bash -xe
source ${rcfile}
openstack server list --name openstack-cluster-smoketest-${env.BUILD_NUMBER}-${hostname}
"""

提前感谢!


内容的提问来源于stack exchange,提问作者Adham Radwan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 11:35:12