Utilisation des scripts de wsadmin avec Jacl (obsolète)

Jacl est une implémentation de remplacement de TCL, entièrement rédigée en code Java™.

Fonction obsolète Fonction obsolète: Jacl est obsolète ; Jython est le langage de script par défaut.depfeat

L'outil wsadmin utilise le langage Jacl version 1.3.2.

Stabilisation de la syntaxe Jacl dans l'outil wsadmin

Langage JACL stabilisé dans la version 7 du produit. IBM® n'envisage pas actuellement de rendre obsolète ou de supprimer cette fonction dans une édition suivante du produit, mais les investissements futurs porteront sur le langage Jython qui est l'alternative stratégique. Il n'est pas nécessaire de modifier vos applications et scripts existants qui utilisent Jacl mais vous devez envisager d'utiliser cette alternative stratégique pour les nouvelles applications.

La syntaxe Jython pour l'outil wsadmin est la direction stratégique de l'automatisation d'administration WebSphere Application Server. Le produit continue de fournir des fonctions d'administration et des outils avancés qui prennent en charge l'automatisation du produit et l'utilisation de la syntaxe Jython. Les amélioration suivantes relatives au scriptage Jython ont été apportées au produit :
  • Assistance des commandes de la console d'administration : fonction de la console d'administration qui affiche la commande wsadmin qui est équivalente à l'action exécutée par l'utilisateur qui interagit avec la console. Le résultat de la fonction d'assistance des commandes de la console peut être transféré directement à l'outil WebSphere Application Server, ce qui simplifie le développement des scripts Jython qui sont basés sur les actions de la console d'administration. Après avoir utilisé l'assistant des commandes de la console, vous pouvez également enregistrer le résultat dans un fichier texte simple en vue d'une utilisation ultérieure.
  • Utilitaire de conversion de Jacl en Jython : Programme qui convertit les scripts wsadmin avec syntaxe Jacl en scripts wsadmin équivalents avec syntaxe Jython. Des douzaines de nouvelles commandes wsadmin perfectionnées qui dissocient le script du modèle d'administration sous-jacent, via l'utilisation de paramètres simples et d'une logique de base évoluée.

Syntaxe de base

La syntaxe de base d'une commande Jacl est la suivante :

Command arg1 arg2 arg3 ...

La commande est soit le nom d'une commande intégrée, soit une procédure Jacl. Exemple :

puts stdout {Hello, world!} 
=> Hello, world!

Dans cet exemple, la commande est puts et elle intègre deux arguments : un identificateur de flux E/S et une chaîne. La commande puts écrit la chaîne dans le flux E/S avec un nouveau caractère de ligne de fin. Les arguments sont interceptés par la commande. Dans l'exemple, stdout permet d'identifier le flux de sortie standard. L'utilisation de stdout en tant que nom est une convention employée par la commande puts ainsi que les autres commandes E/S. stderr identifie la sortie d'erreur standard et stdin identifie l'entrée standard.

Variables

La commande set assigne une valeur à une variable. Cette commande intègre deux arguments : le nom de la variable et la valeur. Les noms de variable n'ont pas de longueur maximale autorisée mais sont sensibles à la casse. Il n'est pas nécessaire de déclarer les variables Jacl avant de les utiliser. L'interpréteur crée la variable lorsqu'une valeur lui est assignée pour la première fois. Exemple :

set a 5
=> 5
set b $a
=> 5

Le second exemple assigne la valeur de la variable a à la variable b. Le symbole du dollar ($) indique une substitution de variable. Vous pouvez supprimer une variable à l'aide de la commande unset, par exemple :

unset varName1 varName2 ... 

Vous pouvez appliquer la commande unset à n'importe quel nombre de variables. La commande unset génère une erreur si aucune variable n'est déjà définie. La commande unset vous permet de supprimer tout un tableau ou un seul élément de tableau. L'exécution de la commande unset sur un tableau permet de supprimer aisément une grande structure de données. L'existence d'une variable peut être testée à l'aide de la commande info exists. Il peut être nécessaire de vérifier l'existence de la variable, car le paramètre incr nécessite qu'une variable existe en premier. Par exemple :

if ![info exists my_info] {set my_info 0} else {incr my_info}

Substitution de commande

La seconde forme de substitution est la substitution de commande. Une commande imbriquée apparaît entre crochets, [ ]. L'interpréteur Jacl évalue tous les éléments entre crochets, et ce en tant que commande. Par exemple :

set len [string length my_string]
=> 6

Dans cet exemple, la commande imbriquée est la suivante : string length ma_chaîne. La commande string effectue différentes opérations sur les chaînes. Dans ce cas, la commande demande la longueur de la chaîne ma_chaîne. S'il existe plusieurs cas de substitution de commande au sein d'une même commande, l'interpréteur les traite du crochet gauche au crochet droit. Exemple :

set number "1 2 3 4" 
=> 1 2 3 4
set one [lindex $number 0]
=> 1
set end [lindex $number end]
=> 4 
set another {123  456  789} 		
=> 123  456  789
set stringLen [string length [lindex  $another  1]]
=> 3
set listLen [llength [lindex $another 1]
=> 1

Expressions mathématiques

L'interpréteur Jacl n'évalue pas les expressions mathématiques. Utilisez la commande expr pour évaluer les expressions mathématiques. L'implémentation de la commande expr prend en compte tous les arguments, les concatène en une seule chaîne et analyse la chaîne en tant qu'expression mathématique. Une fois que la commande expr a calculé la réponse, elle est formatée en une chaîne unique et renvoyée. Par exemple :

expr 7.2 / 3
=> 2.4

Remplacement de barre oblique inversée

Le dernier type de substitution réalisé par l'interpréteur Jacl est la substitution de barre oblique inversée. Utilisez des barres obliques inverses pour ajouter des guillemets ayant une signification particulière pour l'interpréteur. Par exemple, vous pouvez spécifier un signe dollar littéral, une accolade ou une parenthèse en insérant une barre oblique inversée. Si vous utilisez beaucoup de barres obliques inversées, vous pouvez regrouper les éléments à l'aide d'accolades pour désactiver l'interprétation de tous les caractères spéciaux. Dans certains cas, des barres obliques inversées sont nécessaires. Par exemple :

set dollar "This is a string \$contain dollar char"
=> This is a string $contain dollar char

set x $dollar
=> This is a string $contain dollar char 

set  group {$ {} [] { [ } ]}
=> $ {} [] { [ } ]

Vous pouvez aussi utiliser les barres obliques inversées pour continuer les longues commandes sur plusieurs lignes. Une nouvelle ligne sans barre oblique inversée met fin à la commande. Une barre oblique correspondant au dernier caractère d'une ligne est convertie en espace. Par exemple :

set  totalLength  [expr  [string  length  "first string"] + \
[string  length  "second string"]]
=> 25

Regroupement avec des accolades et des guillemets doubles

Utilisez des guillemets doubles et des accolades pour regrouper les mots. Les guillemets permettent d'effectuer des substitutions dans le groupe et les accolades les empêchent. Cette règle s'applique à la substitution des commandes, variables et barres obliques inversées. Par exemple :

set s Hello
=> Hello

puts stdout "The length of $s is [string length $s]."
=> The length of Hello is 5.

puts  stdout  {The length of $s is [string  length  $s].}
=> The length of $s is [string length $s].

Dans le second exemple, l'interpréteur Jacl effectue une substitution de variable et de commande sur le second argument à partir de la commande puts. Dans la troisième commande, les substitutions sont empêchées afin que la chaîne soient imprimée telle quelle.

[AIX Solaris HP-UX Linux Windows] Vous devez être particulièrement attentif aux descriptions de chemin car le langage Jacl utilise le caractère de barre oblique inversée (\) comme caractère d'échappement. Pour éviter cette erreur, remplacez chaque barre oblique inversée par une barre oblique, ou utilisez une double barre oblique inversée dans les instructions de chemin distribué. Par exemple : C:/ ou C:\\

Procédures et portée

Jacl utilise la commande proc pour définir les procédures. La syntaxe de base permettant de définir une procédure est la suivante :

proc  name  arglist  body

Le premier argument est le nom de la procédure définie. Ce nom est sensible à la casse et peut contenir n'importe quel caractère. Il n'existe pas de conflit entre les noms de procédure et les noms de variable. Le second argument est une liste de paramètres à appliquer aux procédures. Le troisième argument est une commande, ou plus généralement un groupe de commandes formant le corps de la procédure. Une fois définie, une procédure Jacl s'utilise de la même façon que n'importe quelle commande intégrée. Par exemple :

proc divide {x y} {
set result [expr $x/$y]
puts $result
}

Dans le script, vous appelez une procédure de division comme suit :

divide 20 5

Le résultat est similaire à :

4

Il est nécessaire d'utiliser la variable c dans cet exemple. Le corps de la procédure peut être également écrit comme suit :

return  [expr  sqrt($a  *  $a  +  $b  *  $b)]

La commande return est facultative dans cet exemple, car l'interpréteur Jacl retourne la valeur de la dernière commande dans le corps comme valeur de la procédure. Par conséquent, le corps de la procédure peut être réduit à :

expr  sqrt($a  *  $a  +  $b  *  $b)

Le résultat de la procédure est le résultat renvoyé par la dernière commande dans le corps. La commande de renvoi peut être utilisée pour renvoyer une valeur spécifique.

Voici une portée simple et générale pour les noms de procédure. Vous pouvez définir une procédure à l'intérieur d'une autre procédure, mais elle sera visible partout. Il existe un espace de nom différent pour les variables et les procédures. Par conséquent, il peut exister une procédure et une variable de même nom sans que cela ne génère un conflit. Chaque procédure dispose d'une portée local pour les variables. Les variables introduites dans les procédures existent uniquement pendant la durée de l'appel de procédure. Une fois la procédure renvoyée, ces variables sont indéfinies. Si le même nom de variable existe dans une portée externe, il n'est pas affecté par l'utilisation de ce nom de variable à l'intérieur d'une procédure. Les variables définies à l'extérieur de la procédure ne sont pas visibles pour une procédure, sauf si les commandes de portée globale sont utilisées.

La portée globale et la portée de niveau supérieur. Cette portée est extérieure à toute procédure. Vous devez rendre les variables définies dans la portée globale accessibles aux commandes qui se trouvent à l'intérieur de la procédure, à l'aide de la commande global. La syntaxe de la commande global est la suivante :

global  varName1  varName2 ...

Commentaires

Utilisez le caractère livre (#) pour insérer un commentaire.

Arguments de ligne de commande

Les shells Jacl passent les arguments de ligne de commande au script comme valeur de la variable argv. Le nombre d'arguments de ligne de commande est défini par la variable argc. Le nom du programme, ou script, ne fait pas partie de argv et n'est pas compté par argc. La variable argv est une liste. Utilisez la commande lindex pour extraire les éléments de la liste d'arguments ; par exemple :

set  first  [lindex  $argv  0]
set  second  [lindex  $argv  1]

Chaînes et forme de correspondance

Les chaînes sont l'élément de données de base dans le langage Jacl. Il existe plusieurs commandes que vous pouvez utiliser pour manipuler des chaînes. La syntaxe générale de la commande string est la suivante :

string operation stringvalue otherargs

L'argument operation détermine l'action de la chaîne. Le second argument est une valeur de chaîne. Il peut exister des arguments supplémentaires en fonction de l'opération.

Le tableau suivant récapitule la commande string :

Tableau 1. Description de la syntaxe des commandes string. Exécutez la commande string avec un ou plusieurs arguments.
Commande Description
string compare str1 str2 Compare les chaînes sur le plan lexicographique. Renvoie 0 en cas d'égalité, -1 si str1 apparaît avant str2, 1 autrement.
string first str1 str2 Renvoie l'indice de str2 de la première occurrence de str1, ou -1 si str1 est introuvable.
string index string1 index1 Renvoie le caractère situé à l'indice spécifié.
string last str1 str2 Renvoie l'indice de str2 de la dernière occurrence de str1, ou -1 si str1 est introuvable.
string length string Retourne le nombre de caractères dans la chaîne.
string match pattern str Renvoie 1 si str correspond au modèle, 0 autrement.
string range str i j Renvoie la plage de caractères de str, compris entre i et j.
string tolower string Retourne la chaîne en minuscules.
string toupper string Retorune la chaîne en majuscules.
string trim string ?chars? Supprime les caractères de chars situés au début et à la fin de la chaîne. Des caractères sont utilisés par défaut à la place des espaces.
string trimleft string ?chars? Supprime les caractères de chars situés au début de la chaîne. Des caractères sont utilisés par défaut à la place des espaces.
string trimright string ?chars? Supprime les caractères de chats situés à la fin de la chaîne. Des caractères sont utilisés par défaut à la place des espaces.
string wordend str ix renvoie l'indice de str du caractère après le mot contenant le caractère situé à l'indice ix.
string wordstart str ix Renvoie l'indice de str du premier caractère du mot contenant le caractère situé à l'indice ix.

La commande append

Le premier argument de la commande append est un nom de variable. Il procède à la concaténation des arguments restants dans la valeur courante de la variable appelée. Par exemple :

set  my_item  z
=> z
append  my_item a b c
=> zabc

La commande regexp

La commande regexp permet un accès direct au comparateur d'expressions régulières. La syntaxe est la suivante :

regexp  ?flags?  pattern  string  ?match  sub1  sub2  ...?

La valeur renvoyée est 1 si une partie de la chaîne correspond au modèle. Otherwise, the return value is 0. Il n'est pas nécessaire que le modèle corresponde à la chaîne complète. Si vous avez besoin d'un contrôle accru, vous pouvez ancrer le modèle au début de la chaîne en commençant le modèle par ^ ou à la fin de la chaîne en terminant le modèle par le signe dollar, $. Vous pouvez forcer le modèle à correspondre à la chaîne complète en utilisant les deux caractères. Par exemple :

set  text1  "This is the first string"
=> This is the first string

regexp  "first string" $text1
=> 1

regexp "second string"  $text1
=> 0

Structures de données Jacl

La structure de données de base du langage Jacl est la chaîne. Il existe deux niveaux supérieurs de structures de données : les listes et les tableaux. Les listes sont implémentées sous forme de chaîne et la structure est définie par la syntaxe de la chaîne. Les règles de syntaxe sont identiques à celles des commandes. Les commandes sont des instances particulières des listes. Les tableaux sont des variables possédant un indice. L'indice est une valeur de chaîne. Vous pouvez envisager les tableaux comme des mappes d'une chaîne (l'indice) vers une autre chaîne (la valeur de l'élément de tableau).

Listes Jacl

En langage Jacl, les listes sont des chaînes ayant une interprétation spéciale. En langage Jacl, une liste possède la même structure qu'une commande. Une liste est une chaîne avec des éléments de chaîne séparés par des espaces. Vous pouvez utiliser des accolades ou des guillemets pour regrouper les mots avec des espaces dans une liste.

Le tableau ci-dessous inclut les commandes associées aux listes :

Tableau 2. Description de la syntaxe des commandes list. Exécutez la commande list avec un ou plusieurs arguments.
Commande Description
list arg1 arg2 Crée une liste de tous ses arguments.
lindex list i Renvoie l'élément i'th d'une liste.
llength list Renvoie le nombre d'éléments dans la liste.
lrange list i j Renvoie les éléments i'th à j'th de la liste.
lappend listVar arg arg ... Ajoute les éléments à la valeur de listVar
linsert list index arg arg ... Insère les éléments d'une liste avant l'élément situé à l'indice de position. Renvoie une nouvelle liste.
lreplace list i j arg arg ... Remplace les éléments compris entre i et J dans la liste par les arguments. Renvoie une nouvelle liste.
lsearch mode list value Renvoie l'indice de l'élément dans la liste, correspondant à la valeur en fonction du mode, -exact, -glob ou -regexp, le mode -glob étant la valeur par défaut. Renvoie -1 si la valeur est introuvable.
lsort switches list Trie les éléments de la liste en fonction des commutateurs : commande -ascii, -integer, -real, -increasing, -decreasing ou -command. Renvoie une nouvelle liste.
concat arg arg arg ... Regroupe plusieurs listes afin de former une liste unique.
join list joinString Fusionne les éléments d'une liste en les séparant à l'aide de joinString.
split string splitChars Fractionne une chaîne en éléments de liste, à l'aide des caractères dans splitChars, comme limites entre les éléments de liste.

Tableaux

Les tableaux correspondent à l'autre structure de données principale dans le langage Jacl. Un tableau est une variable avec un indice dont la valeur est une chaîne. Vous pouvez envisager un tableau comme un mappage de chaînes vers des chaînes. En interne, un tableau est implémenté avec une table de hachage. Le coût d'accès à chaque élément est pratiquement identique. L'indice d'un tableau est délimité par des parenthèses. L'indice peut avoir une valeur de chaîne quelconque et peut être le résultat d'un remplacement de variable ou de commande. Les éléments de tableau sont définis à l'aide de la commande set. Par exemple :
set arr(index) value

Remplacez le signe dollar ($) pour obtenir la valeur d'un élément de tableau. Par exemple :

set my_item $arr(index)

Par exemple :

set fruit(best) kiwi
=> kiwi

set fruit(worst) peach
=> peach

set fruit(ok) banana
=> banana

array get fruit
=> ok banana worst peach best kiwi

array exists fruit
=> 1

Le tableau ci-dessous présente les commandes associées aux tableaux :

Tableau 3. Description de la syntaxe des commandes array. Exécutez la commande array avec un argument.
Commande Description
array exists arr Renvoie 1 si arr est une variable de tableau.
array get arr Renvoie une liste d'éléments partagés entre un indice et la valeur de tableau correspondante.
array names arr ?pattern? Renvoie la liste de tous les index définis pour arr ou ceux qui correspondent au modèle de correspondance de chaîne.
array set arr list Initialise le tableau arr depuis la liste, ce qui implique d'utiliser le même format que la liste retournée par get.
array size arr Renvoie le nombre d'index défini pour arr.
array startsearch arr Renvoie un jeton de recherche pour une recherche dans arr.
array nextelement arr id Renvoie la valeur de l'élément suivant dans le tableau dans la recherche identifiée par l'ID jeton. Renvoie une chaîne vide s'il ne reste plus d'éléments dans la recherche.
array anymore arr id Renvoie 1 s'il reste plusieurs éléments dans la recherche.
array donesearch arr id Interrompt la recherche identifiée par l'ID.

Commandes de flux de contrôle

Les commandes de bouclage disponibles sont les suivantes :

  • while
  • foreach
  • for

Les commandes conditionnelles disponibles sont les suivantes :

  • if
  • switch

Voici une commande de traitement des erreurs :

  • catch

Les commandes ci-dessous affinent le flux de contrôle :

  • break
  • continue
  • return
  • error

if then else

La commande if est la commande conditionnelle de base. Si une expression est vraie, la deuxième ligne de code est exécutée ; sinon, une autre ligne est exécutée. La seconde partie de la commande (la clause else) est facultative. La syntaxe de la commande est la suivante :

if  boolean  then  body1  else  body2

les mots clés then et else sont facultatifs. Par exemple :

if {$x == 0} {
 puts stderr "Divide by zero!"
} else {
 set slope [expr $y/$x]
}

switch

Utilisez la commande switch pour effectuer une association avec une commande en fonction de la valeur d'une expression. Vous pouvez effectuer votre choix à partir de la comparaison des modèles ou de comparaisons simples. Le nombre de paires modèle-partie n'est pas limité. Si plusieurs modèles correspondent, seule la partie code du premier modèle correspondant est évaluée. La forme générale de la commande est la suivante :

switch  flags  value  pat1  body1  pat2  body2  ...

Vous pouvez également regrouper toutes les paires modèle-partie en un argument :

switch  flags  value  {pat1  body1  pat2  body2  ...}

Il existe quatre indicateurs possibles qui déterminent la correspondance de valeur.

  • -exact , pour comparer exactement la valeur à un des modèles.
  • -glob, pour utiliser la comparaison de modèles de style global.
  • -regexp, pour utiliser la comparaison de modèles à l'aide d'expressions régulières.
  • --, aucun indicateur (ou fin des indicateurs). Utile lorsque la valeur peut commencer par un tiret (-).

Par exemple :

switch  -exact  --  $value  {
 foo  {doFoo;  incr  count(foo)}
 bar	{doBar;  return  $count(foo)}
 default   {incr  count(other)}
}

Si le modèle associé à la dernière partie est default, la partie de la commande est exécutée si aucun autre modèle ne correspond. Le mot-clé default fonctionne uniquement sur la dernière paire modèle/corps. Si vous utilisez le modèle par défaut dans un corps antérieur, il est traité comme modèle pour faire correspondre la valeur par défaut de chaîne littérale.

foreach

La commande foreach effectue une boucle sur une partie de la commande et affecte une variable de boucle à chacune des valeurs d'une liste. La syntaxe est la suivante :

foreach loopVar valueList commandBody

Le premier argument est le nom d'une variable. La partie de la commande est exécutée une fois pour chaque élément de la boucle avec la variable de boucle qui dispose des valeurs successives de la liste. Par exemple :

set numbers {1 3 5 7 11 13}
foreach num $numbers {
puts $num
}

L'exemple précédent génère la sortie suivant en supposant que l'environnement contient un seul serveur. S'il existe plusieurs serveurs, les informations de tous les serveurs renvoient :

1
3
5
7
11
13

while

La commande while utilise deux arguments : un test et une partie de commande. Par exemple :

while  booleanExpr  body

La commande while teste de manière répétée l'expression booléenne et exécute la partie de commande si l'expression est vraie (différente de zéro). Par exemple :

set i 0
while {$i < 5} {
puts "i is $i"
incr i} 

Le résultat des exemples précédents ressemble à la sortie suivante en supposant qu'il n'existe qu'un seul serveur. S'il existe plusieurs serveurs, tous les serveurs sont affichés :

i is 0
i is 1
i is 2
i is 3
i is 4

for

La commande for s'apparente au langage C en ce qui concerne les instructions. Quatre arguments sont utilisés. Par exemple :

for initial test final body

Le premier argument est une commande visant à initialiser la boucle. Le deuxième argument est une expression booléenne qui détermine si le corps de la boucle s'exécute. Le troisième argument est une commande exécutée après la partie de la boucle. Par exemple :

set numbers {1 3 5 7 11 13}
for {set i 0} {$i < [llength $numbers]} {incr i 1} {
puts "i is $i"
} 

Le résultat des exemples précédents ressemble à la sortie suivante en supposant qu'il n'existe qu'un seul serveur dans l'environnement. S'il existe plusieurs serveurs, tous les noms de serveur s'affichent :

i is 1
i is 3
i is 5
i is 7
i is 11
i is 13

break et continue

Vous pouvez contrôler l'exécution d'une boucle à l'aide des commandes break et continue. La commande break entraîne l'arrêt immédiat d'une boucle. La commande continue entraîne la réexécution de la boucle avec l'itération suivante.

catch

Une erreur se produit si vous appelez une commande avec un nombre d'arguments erroné ou que la commande détecte une erreur spécifique de l'implémentation. Une erreur non interceptée empêche l'exécution d'un script. Pour intercepter ce type d'erreur, utilisez la commande catch. La commande catch accepte deux arguments, par exemple :

catch command ?resultVar? 

Le premier argument est une partie de commande. Le deuxième argument est le nom d'une variable qui contient le résultat de la commande ou un message d'erreur si la commande génère une erreur. La commande catch renvoie la valeur 0 si aucune erreur n'a été interceptée ou la valeur 1 si la commande intercepte une erreur. Par exemple :

catch {expr 20 / 5} result
==> 0
puts $result
==> 4
catch {expr text / 5} result
==> 1
puts $result
==> syntax error in expression "text / 5"

return

Utilisez la commande return pour retourner une valeur avant la fin du corps de la procédure ou si une valeur de contraste doit être retournée.

Espaces de nom

Jacl suit les entités nommées, telles que les variables, dans les espaces de nom. L'outil wsadmin ajoute lui aussi des entrées à l'espace de nom global pour les objets de scriptage comme l'objet AdminApp.

Lorsque vous exécutez une commande proc, un espace de nom est créé et initialisé avec les noms et les valeurs des paramètres dans la commande proc. Les Variables sont placées dans l'espace de nom local lorsque vous exécutez la commande proc. Lorsque vous arrêtez la commande proc, l'espace de nom local est effacé. L'espace de nom local de la commande proc implémente la sémantique des variables automatiques dans les langages, tels que C et Java.

Lorsque les variables dans l'espace de nom global sont visibles du code de niveau supérieur, elles ne sont pas visibles par défaut depuis une commande proc. Pour les rendre visibles, déclarez les variables globalement à l'aide de la commande global. Pour les noms de variable fournis, la commande global crée les entrées dans l'espace de nom local qui pointe vers les entrées d'espace de nom global définissant réellement les variables.

Si vous utilisez un objet de scriptage fourni par l'outil wsadmin dans une proc, vous devez commencer par la déclarer globalement pour l'utiliser, par exemple :

proc { ... } {
		global AdminConfig
		... [$AdminConfig ...]
}

Appel de scripts à l'aide d'un autre script

Utilisez la commande source pour appeler un script Jacl à partir d'un autre. Exemple :

Créez un script appelé test1.jacl.

[AIX Solaris HP-UX Linux Windows]
source c:/temp/script/testProcedure.jacl
printName Cathy Smith
[z/OS]
source /temp/script/testProcedure.jacl
printName Cathy Smith

Créez un script appelé testProcedure.jacl.

proc printName {first last} {
	puts "My name is $first $last"
}

Passez ensuite le chemin d'accès comme argument de script.

[AIX Solaris HP-UX Linux Windows]
wsadmin -lang jacl -f c:/temp/script/test1.jacl
[z/OS]
wsadmin -lang jacl -f '/temp/script/test1.jacl'

Vous devez utiliser des barres obliques (/) comme séparateur de chemin. Les barres obliques inversées (\) ne fonctionnent pas.

Réacheminement à l'aide de la commande exec

La commande Jacl exec de réacheminement suivante n'opère pas sur les plateformes Linux :

eval exec ls -l > /tmp/out

La commande exec du langage de script Jacl ne prend pas pleinement en charge le réacheminement et peut donc conduire à des problèmes sur certaines plateformes.

Ne tentez pas de réacheminement avec la commande exec du langage Jacl. En lieu et place, vous pouvez sauvegarder la commande exec destinée au réacheminement dans une variable puis l'écrire dans un fichier - exemple:

open /tmp/out w puts $fileId $result close $fileId

Dans d'autre cas, vous pouvez également effectuer un réacheminement via un interpréteur de commandes et un réacheminement de commande .sh (et non un réacheminement initialisé par Tcl).


Icône indiquant le type de rubrique Rubrique de concept



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cxml_jacl
Nom du fichier : cxml_jacl.html