請使用 <setenv> 元素來起始設定 <interface> 或 <match> 元素中的環境變數值。<setenv> 元素不會包含其他元素。
該元素的使用方法有三種:
- 當您指定群組名稱時,其運作方式和 .set 指令類似。它會將變數值設定在資料庫的主要記錄中(而不是在現行步驟使用的副本中)。正在現行步驟中執行的配接器不會看到這項變更。您無法以這種方式來建立新變數。
- 當您沒有指定群組名稱時,其運作方式和 .bset 指令類似。它會將變數值設定在執行中工作的環境中。工作中的所有步驟皆可使用這項變更。您使用採取這種方式來建立新變數。
- 當您沒有指定群組名稱,並且 指定臨時變數 (type="temp"),則會設定一個僅作為配接器邏輯用的臨時變數。此變數在配接器步驟執行之後並不會持續保存。您使用採取這種方式來建立新變數。
屬性:
- condition
- 選用,形式如下所示:condition="function"。function 的值是一個會求值為 true 或 false 的表示式。如果求值為 true,指令就會執行。如果求值為 false,就不會執行。請參閱條件函數。
- eval
- 選用。設為 True 或 False。若為 true,則配接器會試圖對 value 屬性表示式求值,並儲存結果。
- group
- 選用。指定要在其中定義變數的 Build Forge 環境。當您指定環境名稱時,必須參照指定環境中的現有變數。
如果您指定 [ADAPTOR] 作為值,則會在執行時期設定值。它會設定為呼叫配接器之步驟或配接器鏈結的環境。
Build Forge 容許同名的變數存在於多個環境中。環境繼承與環境併入的優先順序可能影響在執行時期如何決定將值指派給變數。
- name
- (必要)。指定要設定之變數的名稱。值可以是一個變數。在這種情況下,在執行時期之前並不會設定變數名稱。
- type
- 選用。指定變數的設定方法。其值可為下列之一:
- append text:將指定的值放在任何現有值之後。如果指定選用的文字,會將該文字放在兩值之間。
- once:變數必須尚未設定才能設定。
- prepend 文字:將值放在任何現有值之前。
- temp:變數只能設定在配接器的環境定義中。如果指定選用的文字,會將該文字放在兩值之間。請參閱下列範例。
- value
- (必要)。這是設定在變數中的值。如果同時指定了 eval 屬性,則可以是所要求值的表示式。求值的結果會儲存成值。
範例:
下列範例是對 value 屬性求值的表示式,並將結果儲存在 LAST_VER 變數中。它將設為 LAST_VER 或 $1 變數值中的較大者。
<setenv group="Adaptor" name="LAST_VER"
value="$LAST_VER>$1?$LAST_VER:$1" eval="true" />
下列範例是在附加到 Changes 變數後面的資料前面,插入一個換行字元 (\n):
<setenv name="Changes" value="$4 - $1 - $6" type="temp append\n" />
下列範例是在附加到 INFOPATH 變數前面的值的後面插入一個冒號:
<setenv name="INFOPATH" value="/usr/local" type="temp prepend:" />