Comment lire une variable d'environnement Shell dans votre script Tcl. Alors, aidez-moi, s'il vous plaît. Je suis très nouveau dans TCL.
Utilisez $::env
pour accéder aux variables d’environnement, par ex. Pour accéder à la variable d'environnement TMP, procédez comme suit:
set tmpdir $::env(TMP)
Plus d'infos ici http://wiki.tcl.tk/1624
$ export var=42
$ tclsh
% puts $env(var)
42
Les variables d'environnement sont accessibles via la variable globale intégrée env
(pleinement qualifié, il s'agit de ::env
). Vous utilisez ceci comme n'importe quel autre tableau Tcl.
Si vous souhaitez imprimer une liste de toutes les variables d'environnement, vous pouvez utiliser quelque chose comme ceci:
proc dump_env_vars {} {
foreach name [array names ::env] {
puts "$name == $::env($name)"
}
}
Bien sûr, pour accéder à une seule variable, utilisez-la comme n'importe quel autre tableau, par exemple:
puts "HOME = '$::env(HOME)'"
Pour plus d'informations, consultez la page env sur le wiki de Tcler et la section env de la page de manuel tclvars
Pour lire une variable d’environnement Shell dans un script Tcl, essayez de procéder comme suit:
global env
set olddisplay $env(DISPLAY)
set env(DISPLAY) unix:0
Cela pourrait être exprimé aussi bien de cette façon:
set olddisplay $::env(DISPLAY)
set ::env(DISPLAY) unix:0
et oubliez global
.
Vous pouvez vérifier si la variable existe en faisant quelque chose comme:
if {[info exists env(VARNAME)]} {
# okay, it's there, use it
set value $env(VARNAME)
} else {
# the environment var isn't set, use a default
set value "the default value"
}
C'est source .