web-dev-qa-db-ja.com

TCLでBash環境変数を読み取る

Tclスクリプトでシェル環境変数を読み取る方法。だれでも助けてください。私はTCLの非常に新しいです。

23
galvin Verghese

使用する $::envなどの環境変数にアクセスします。 TMP環境変数にアクセスするには、次のようにします。

set tmpdir $::env(TMP)

詳細はこちら http://wiki.tcl.tk/1624

33
TrojanName
$ export var=42
$ tclsh
% puts $env(var)
42
5
hynek

環境変数は、組み込みのグローバル変数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セクション を参照してください。

3
Bryan Oakley

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 です。

2
serenesat