Tclスクリプトでシェル環境変数を読み取る方法。だれでも助けてください。私はTCLの非常に新しいです。
使用する $::env
などの環境変数にアクセスします。 TMP環境変数にアクセスするには、次のようにします。
set tmpdir $::env(TMP)
詳細はこちら http://wiki.tcl.tk/1624
$ export var=42
$ tclsh
% puts $env(var)
42
環境変数は、組み込みのグローバル変数env
(完全修飾された::env
)。これは他のTcl配列と同じように使用します。
すべての環境変数のリストを出力する場合は、次のようなものを使用できます。
proc dump_env_vars {} {
foreach name [array names ::env] {
puts "$name == $::env($name)"
}
}
もちろん、1つの変数だけにアクセスするには、他の配列と同じように使用します。次に例を示します。
puts "HOME = '$::env(HOME)'"
詳細については、 Tclerのwikiのenvページ および tclvarsのマニュアルページのenvセクション を参照してください。
Tclスクリプトでシェル環境変数を読み取るには、次のようにします。
global env
set olddisplay $env(DISPLAY)
set env(DISPLAY) unix:0
これは次のように表現することもできます。
set olddisplay $::env(DISPLAY)
set ::env(DISPLAY) unix:0
global
を忘れてください。
次のようにして、変数が存在するかどうかを確認できます。
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"
}
これは source です。