Variable D'environnement Bash dans TCL

Comment lire une variable d'environnement shell dans votre script Tcl. Donc n'importe qui s'il vous plaît aider moi. Je suis très nouveau dans TCL.

20
tcl
demandé sur galvin Verghese 2011-04-01 12:44:49

4 réponses

Utiliser $::env pour accéder à n'importe quelle variable d'environnement par exemple pour accéder à la variable d'environnement TMP faites ceci:

set tmpdir $::env(TMP)

Plus d'info ici http://wiki.tcl.tk/1624

28
répondu TrojanName 2011-04-01 16:35:06
$ export var=42
$ tclsh
% puts $env(var)
42
5
répondu hynek 2011-04-01 08:56:50

les variables D'environnement sont accessibles via la variable globale intégrée ::env). Vous utilisez ceci comme tout autre tableau Tcl.

Si vous souhaitez imprimer une liste de toutes les variables d'environnement que 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 que vous l'utiliser comme n'importe quel autre tableau, par exemple:

puts "HOME = '$::env(HOME)'"

pour plus d'information voir le page env sur le wiki de Tcler et la section env de la tclvars page de manuel de

3
répondu Bryan Oakley 2011-04-01 16:41:40

pour lire une variable d'environnement shell dans le script Tcl, essayez de faire quelque chose comme ceci:

global env
set olddisplay $env(DISPLAY)
set env(DISPLAY) unix:0

ceci pourrait être exprimé aussi bien de cette façon:

set olddisplay $::env(DISPLAY)
set ::env(DISPLAY) unix:0

et oublier 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.

1
répondu serenesat 2015-04-17 12:31:13