2016-02-28 63 views
0

我/usr/local/tools/Unix/tcl_pkgs/tclx/tclX8.4/在機器上安裝tcllib運行時,以反映TCL auto_path中的設置和採購下方無法從另一臺機器

#!/bin/sh 
set ::auto_path [linsert $auto_path 0 /usr/local/tools/Unix/tcl_pkgs/tclx/tclX8.4/] 
set ::env(TCLLIBPATH) "/usr/local/tools/Unix/tcl_pkgs/tclx/tclX8.4/" 
set ::env(ITCL_LIBRARY) "/usr/local/tools/Unix/tcl_pkgs/tclx/tclX8.4/itcl3.4.1/" 
腳本

包之前需要Tclx

指令導出tcllib和ITCL路徑,但我無法正確設置auto_path。當我運行我的測試時,請保留下面的錯誤。正在從錯誤的路徑讀取tclIndex。

couldn't open "/usr/lib64/tcl8.5/tclIndex": no such file or directory 
while executing 
"open [file join $dir tclIndex]" 
+0

請注意,Tclx不是tcllib的一部分。 –

回答

0

Tcl和shell對於處理變量有不同的語法。此外,auto_path是一個Tcl變量只有而且根本不是shell變量。它是從各種其他東西的內容(包括在編譯Tcl庫期間烘焙的一些值)構建而成的。其中之一是TCLLIBPATH環境變量,其中包含Tcl列表(即以空格分隔的列表),該列表在構建時放置在auto_path的前面。

一旦Tcl解釋程序正在運行,設置TCLLIBPATH的值就毫無意義;它已經使用它,如果它被設置。一旦進入你的代碼,你可以直接操縱auto_path本身。

/bin/sh shell腳本,設置了TCLLIBPATH有:

export TCLLIBPATH="/usr/local/tools/Unix/tcl_pkgs/tclx/tclX8.4" 

更重要的是,正如以往你需要確保你沒有在子shell,除非設置環境變量的shell腳本您僅在該子外殼的子進程中使用它們。

相關問題