4.10. if-else 制御フローの使用
管理 CLI は、条件を基にして実行するコマンドおよび操作のセットを選択可能にする if
-else
制御フローをサポートします。if
条件は、of
キーワードの後に指定された管理コマンドまたは操作の応答を評価するブール式です。
入れ子の if
-else
ステートメントの使用はサポートされません。
以下の項目をどれでも式に含めることができます。
- 式をグループ化および優先付けするかっこ
条件演算子
-
および (and) (
&&
) -
または (or) (
||
)
-
および (and) (
比較演算子
-
等しい (
==
) -
等しくない (
!=
) -
より大きい (
>
) -
より大きいまたは等しい (
>=
) -
より小さい (
<
) -
より小さいまたは等しい (
<=
) -
正規表現と一致 (
~=
)
-
等しい (
正規表現と一致 (~=
) の演算子はテクノロジープレビューとしてのみ提供されます。テクノロジープレビューの機能は、Red Hat の本番環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat は本番環境での使用は推奨しません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
テクノロジープレビュー機能のサポート範囲については、Red Hat カスタマーポータルの テクノロジープレビュー機能のサポート範囲 を参照してください。
以下は、正規表現と一致 (~=
) の演算子を使用して、features
システムプロパティーの値に jgroups
が含まれるかどうかをチェックします。
if (result ~= ".*jgroups.*") of /:resolve-expression(expression=${features}) echo Configuring JGroups end-if
以下の例は、システムプロパティー test
の読み取りを試みます。outcome
が success
でない場合 (プロパティーが存在しないことを意味します)、システムプロパティーが追加され、true
に設定されます。
if (outcome != success) of /system-property=test:read-resource /system-property=test:add(value=true) end-if
上記の条件は、outcome
を使用します。 これは、以下のように of
キーワードの後の CLI コマンドが実行されると返されます。
/system-property=test:read-resource { "outcome" => "failed", "failure-description" => "JBAS014807: Management resource '[(\"system-property\" => \"test\")]' not found", "rolled-back" => true }
以下の例は、サーバープロセスの起動型 (STANDALONE
または DOMAIN
) をチェックし、適切な管理 CLI コマンドを実行して ExampleDS
データソースを有効にします。
if (result == STANDALONE) of /:read-attribute(name=launch-type) /subsystem=datasources/data-source=ExampleDS:write-attribute(name=enabled, value=true) else /profile=full/subsystem=datasources/data-source=ExampleDS:write-attribute(name=enabled, value=true) end-if
if
-else
制御フローを使用する管理 CLI コマンドをファイルに指定することができ、ファイルには各コマンドを各行に個別に指定します。ファイルを jboss-cli
スクリプトに渡すと、--file
パラメーターを使用して非対話的に実行されます。
$ EAP_HOME/bin/jboss-cli.sh --connect --file=CLI_FILE