我想执行以下脚本:
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
"""
提前致谢!
我尝试使用单引号和双引号,我知道对于字符串插值,您需要双引号
我知道我的 rcfile 源工作得很好,因为我之前运行过这个,并且它在不同的 shell 块中工作得很好:
sh """#!/bin/bash -xe
source ${rcfile}
openstack server delete openstack-cluster-smoketest-${env.BUILD_NUMBER}-${hostname}
"""
在获取并创建具有名称的实例后,单独运行这部分也可以在 shell 块中运行 openstack-cluster-smoketest-${env.BUILD_NUMBER}-${hostname} 成功提取构建号和当前主机名(我从 jenkins 管道阶段提取构建号和主机名)
sh """#!/bin/bash -xe
source ${rcfile}
openstack server list --name openstack-cluster-smoketest-${env.BUILD_NUMBER}-${hostname}
"""