我想在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版本。
答案 0 :(得分:2)
>
变量中似乎没有PRS_INFO
个字符;
尝试:
set -x
OLD_IFS="$IFS"
IFS=$'\n'
for line in $PRS_INFO; do
echo "$line"
done
IFS="$OLD_IFS"