條件函數用於「條件」步驟內容和配接器 XML 元素的 condition 屬性中。
- 若為使用「條件」內容的步驟:如果在「條件」欄位開頭使用下列函數,則會交由引擎來求值,而除非條件求值為 true,否則不會傳送資訊給選取的伺服器。如果條件求值為 true,就會在選取的伺服器上執行步驟。
重要: - 請勿試圖在伺服器資源之 Shell 環境中所設定的變數上,使用這些函數。由於求值是在 Build Forge 引擎上進行,因此它們只會對定義在步驟之 Build Forge 環境中的變數起作用。
- 請勿在要評估的字串中使用運算子字元。運算子字元如下:=, <, >, !
- 若為配接器範本:下列函數可用在具有 condition 屬性的配接器 XML 元素中。它們用來指定如何執行配接器。重要事項:在 condition 屬性中,必須用雙引號括住 condition 函數:condition="condition_function"。
可用的函數如下:
- true(expression)
- 如果 expression 為 true,則傳回 true。
- false(expression)
- 如果表示式為 false,則傳回 true。
- contains(a,b)
- 如果字串 a 包含字串 b,則傳回 true。a 和 b 參數可以是文字字串或變數。不應用引號括住文字字串。如果文字字串括上引號,則引號會變成所要求值的字串的一部分。
註: 在 Rational Build Forge 7.1.2 版之前,如果字串 a 在字串 b 中,這個函數會傳回 true。
- hastext(var)
- 如果變數不是空的,則傳回 true。Var 為設定在 Build Forge 中的一個變數。
- isempty(var)
- 如果變數為空的,則傳回 true。Var 為設定在 Build Forge 中的一個變數。
- a eq b
- 如果 a 等於 b 則傳回 true。a 和 b 參數可以是設定在 Build Forge 中的變數,或者是文字值。可以使用字元和數值類型。在參數和運算子之間,請使用一個空格。
- a ne b
- 如果 a 不等於 b,便傳回 true。a 和 b 參數可以是 Build Forge 中所設定的變數,或是文字值。可以使用字元和數值類型。可以使用字元和數值類型。在參數和運算子之間,請使用一個空格。
- a contains b
- 如果在 a 字串中找到 b 字串,則傳回 true。文字字串不應括上引號。如果文字字串括上引號,則引號會變成所要求值的字串的一部分。可以使用字元和數值類型。在參數和運算子之間,請使用一個空格。
函數中的表示式
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
- 測試在 a 字串中可以找到 b 字串。參數可以是文字或是定義在 Build Forge 中的變數。不應用引號括住文字字串。
條件函數範例
在下表的範例中,將變數設定成如下:
- $AVAL contains the value String.
- $BVAL contains the value 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 |
測試字串比較 |