条件函数用于 Condition 步骤属性和适配器 XML 元素的 condition 属性中。
- 对于使用 Condition 属性的步骤:如果在 Condition 字段的开头使用了以下函数,那么引擎将对这些函数求值,并且,除非该条件的求值结果为 true,否则不会向选定服务器发送信息。如果条件的求值结果为 true,将在选定服务器上运行该步骤。
要点: - 不要尝试对服务器资源的 shell 环境中设置的变量使用函数。求值对 Build Forge 引擎进行,因此对于该步骤,它们仅对在 Build Forge 环境中定义的变量起作用。
- 请勿在求值字符串中使用运算符字符。
运算符字符有 =, <, >, !
- 对于适配器模板:以下函数可用于具有 condition 属性的 适配器 XML 元素中。它们用于指定适配器的运行方式。重要信息:条件函数在条件属性中必须用双引号引起:condition="condition_function"。
以下函数可用:
- true(expression)
- 如果 expression 为真,则返回 true。
- false(expression)
- 如果表达式为 false,那么返回 true。
- contains(a,b)
- 如果字符串 a 包含字符串 b,那么返回 true。a 和 b 参数可以是文字串或变量。不应将文字串加引号。如果将文字串加上引号,引号将成为求值的字符串的一部分。
注: 在 Rational Build Forge V7.1.2 之前,如果字符串 a 在字符串 b 中,此函数会返回 true。
- hastext(var)
- 如果该变量不为空,那么返回 true。Var 是 Build Forge 中的变量集。
- isempty(var)
- 如果该变量为空,那么返回 ture。Var 是 Build Forge 中的变量集。
- a eq b
- 如果 a 等于 b,那么返回 ture。a 和 b 参数可以是 Build Forge 中的变量集,也可以是文字值。可使用字符和数值类型。在参数和运算符之间使用一个空格。
- a ne b
- 如果 a 不等于 b,那么返回 ture。a 和 b 参数可以是 Build Forge 中的变量集,也可以是文字值。可使用字符和数值类型。可使用字符和数值类型。在参数和运算符之间使用一个空格。
- a contains b
- 如果字符串 b 可在字符串 a 中找到,那么返回 ture。不应将文字串加上引号。如果将文字串加上引号,引号将成为求值的字符串的一部分。可使用字符和数值类型。在参数和运算符之间使用一个空格。
函数中的表达式
true() 和 false() 函数中的
expression 参数可使用以下运算符:
- a==b
- 测试两者是否相等。参数可以是字符串或数字。参数可以是 Build Forge 中定义的字面值或变量。
- a eq b
- 测试两者是否相等。参数可以是字符串或数字。参数可以是 Build Forge 中定义的字面值或变量。在参数和运算符之间使用一个空格。
- a!=b
- 测试两者是否不等。参数可以是字符串或数字。参数可以是 Build Forge 中定义的字面值或变量。
- a ne b
- 测试两者是否不等。参数可以是字符串或数字。参数可以是 Build Forge 中定义的字面值或变量。在参数和运算符之间使用一个空格。
- a>b
- 测试 a 是否大于 b。参数必须为数值。参数可以是 Build Forge 中定义的字面值或变量。字面值可使用算术运算符,例如 2+2。
- a<b
- 测试 a 是否不大于 b。参数必须为数值。参数可以是 Build Forge 中定义的字面值或变量。字面值可使用算术运算符,例如 2+2。
- a>=b
- 测试 a 是否大于等于 b。参数必须为数值。参数可以是 Build Forge 中定义的字面值或变量。字面值可使用算术运算符,例如 2+2。
- a<=b
- 测试 a 是否不大于等于 b。参数必须为数值。参数可以是 Build Forge 中定义的字面值或变量。字面值可使用算术运算符,例如 2+2。
- a contains b
- 测试字符串 b 是否可在字符串 a 中找到。参数可以是 Build Forge 中定义的字面值或变量。不应将文字串加引号。
条件函数的示例:
在下表中的示例中,变量设置如下:
- $AVAL 包含值 String。
- $BVAL 包含值 3。
条件 |
求值为 |
注释 |
A String contains $AVAL |
TRUE |
字符串比较 |
A String contains "String" |
FALSE |
String 两边的引号成为比较的一部分 |
true(A String contains $AVAL) |
TRUE |
字符串比较 |
$AVAL contains String |
TRUE |
字符串比较 |
$AVAL contains "String" |
FALSE |
String 两边的引号成为比较的一部分 |
contains(A String,$AVAL) |
TRUE |
字符串比较 |
true(A String contains "$AVAL") |
FALSE |
$AVAL 两边的引号成为比较的一部分;“A String”中的“String”部分两边没有引号。 |
A String != $AVAL |
TRUE |
字符串比较 |
A String ne $AVAL |
TRUE |
字符串比较 |
false("Not Here" contains $AVAL) |
TRUE |
测试字符串比较 |
true(2+1 == $BVAL) |
TRUE |
用于测试相等性的数字表达式 |
false(2+2 < $BVAL) |
TRUE |
用于测试不等性的数字表达式 |
$AVAL eq $AVAL |
TRUE |
测试字符串比较 |
true($AVAL ne Linus) |
TRUE |
测试字符串比较 |
true($BVAL > 2+2) |
FALSE |
(3 > 2+2) 不为 true |
contains(Not Here, $AVAL) |
FALSE |
测试字符串比较 |