Jenkins壳不假设两个变量

polkgigr  于 2023-01-20  发布在  Jenkins
关注(0)|答案(2)|浏览(134)

我正在构建一个jenkins作业,根据选择参数($APP),它将使用pref变量并“attach”到主机名
主机名将在ansible行动手册中用于部署应用程序,并使用--limit指向我们在choice参数中定义的主机(我将其定义为HOST 1

case $APP in
  "app01")
      PREF=WS-APP01;;
  "app02")
      PREF=WS-APP02;;
  "app03")
      PREF=WS-app03;;
   *)
      exit 2;;
  
esac

H2=""
H3=""


if ! [ -z $HOSTS3 ]
then
    H3="$PREF_${HOSTS3}*:"
fi
if ! [ -z $HOSTS2 ]
then
  H2="$PREF_${HOSTS2}*:"
fi

HOSTS="$PREF_${HOSTS1}*:$H2:$H3"

echo $PREF_$HOSTS1

直到这里似乎相当简单和不言自明。
但是当我运行测试echo时,它只返回$HOSTS1中的主机foun

10:28:58 + case $APP in
10:28:58 + PREF=APP01
10:28:58 + H2=
10:28:58 + H3=
10:28:58 + '[' -z ']'
10:28:58 + '[' -z ']'
10:28:58 + HOSTS='qaaciapp00001v*::'
10:28:58 + echo qaaciapp00001v

试图谷歌这种行为,但没有成功找到解释。提前感谢。

jpfvwuh4

jpfvwuh41#

尝试以下方法之一进行回声。

echo "$PREF_$HOSTS1"

echo "\$PREF_$HOSTS1"
gcxthw6b

gcxthw6b2#

支架...支架拯救了世界...

case $APP in
  "app01")
      PREF=WS-APP01;;
  "app02")
      PREF=WS-APP02;;
  "app03")
      PREF=WS-app03;;
   *)
      exit 2;;
  
esac

H2=""
H3=""


if ! [ -z $HOSTS3 ]
then
    H3="${PREF}_${HOSTS3}*:"
fi
if ! [ -z $HOSTS2 ]
then
  H2="${PREF}_${HOSTS2}:"
fi

HOSTS="${PREF}_${HOSTS1}:$H2:$H3"

echo ${PREF}_${HOSTS1}

非常感谢你的帮助ycr

相关问题