如何在Jenkins Job中用bash shell打印多行字符串参数的每个元素

时间:2018-02-08 05:43:56

标签: bash jenkins

我想在Jenkins作业中使用多行字符串参数,这很奇怪。 参数名称为PRS_INFO,其默认文本为:

PT54321:file xxx not exit
PT74231:xxx reboot

运行此作业后,参数设置为environment:

PRS_INFO    PT54321:file xxx not exit>PT74231:xxx reboot

但是当我想使用bash shell代码逐行打印时,如:

set -x
IFS_OLD=$IFS
IFS='>'
for i in $PRONTO_INFO; do
  echo $i
done
IFS=$IFS_OLD

它在控制台中打印日志:

+ IFS_OLD='     
'
+ IFS='>'
+ for i in '$PRS_INFO'
+ echo 'PT54321:file xxx not exit
PT74231:xxx reboot'
PT54321:file xxx not exit
PT74231:xxx reboot 
+ IFS='

为什么echo只调用一次打印所有行,而不是两次打印两行?

PS。 Jenkins 2.32.3是我们使用的Jenkins版本。

1 个答案:

答案 0 :(得分:2)

>变量中似乎没有PRS_INFO个字符;

尝试:

set -x
OLD_IFS="$IFS"
IFS=$'\n'
for line in $PRS_INFO; do
    echo "$line"
done
IFS="$OLD_IFS"