如何讀取Tcl腳本中的shell環境變量。 所以任何人都請幫助我。我在TCL很新。閱讀TCL中的Bash環境變量
回答
$ export var=42
$ tclsh
% puts $env(var)
42
TMP環境變量是在bash腳本中定義的。所以我想要做的只是訪問tcl中的環境變量。我的tcl提示符是%。所以最後我想訪問tcl中的環境變量。 – 2011-04-01 09:03:53
TMP環境變量將是$ env(TMP)。 **但**:tcl腳本是從bash腳本中調用的嗎?變量全局(即出口)? – hynek 2011-04-01 09:06:54
是的。它工作正常。但我的問題是,什麼環境變量是在bash或shell腳本中定義的,只是我想使用tcl中的proc進行訪問。所以請........ – 2011-04-01 09:08:55
環境變量是通過訪問內置的全局變量env
(完全合格是::env
)。你可以像使用其他Tcl數組一樣使用它。
如果你想打印所有環境變量的列表,你可以使用這樣的事情:
proc dump_env_vars {} {
foreach name [array names ::env] {
puts "$name == $::env($name)"
}
}
當然,訪問只是你使用它像任何其他陣列中的單個變量,例如:
puts "HOME = '$::env(HOME)'"
欲瞭解更多信息,請參閱env page on the Tcler's wiki和the env section of the tclvars man page
是的,你的過程被執行,它給出了所有的環境變量。沒關係。但我在這裏問。假設在bash腳本中,如果我像這樣定義用戶定義環境:ORACLE_SID = DBTEST ORACLE_HOME =/opt/oracle/product/102 export ORACLE_SID ORACLE_HOME現在我想在tcl中編寫一個proc來訪問用戶定義的環境變量。所以我該怎麼做。請.......... – 2011-04-02 05:29:33
我也讀過你的鏈接。但這與我的要求不符。 – 2011-04-02 05:49:05
我想在轉儲環境變量時使用'parray env'。 – 2011-04-02 07:34:48
要閱讀Tcl腳本對shell環境變量,嘗試做這樣的事情:
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。
- 1. 讀bash的環境變量
- 2. 閱讀環境Jmeter中的變量值
- 3. TCL檢查環境變量
- 4. 閱讀Oracle 10gas上的環境變量
- 5. 閱讀環境變量是慢操作?
- 6. 閱讀GitLab GL_REPOSITORY環境變量
- 7. ASP .NET核心閱讀環境變量
- 8. bash日期環境變量
- 9. TCL未能擴大環境變量
- 10. 閱讀使用Saxon的XSLT樣式表中的環境變量
- 11. 使用Websphere閱讀Java中的環境變量
- 12. 在bash中更新環境變量
- 13. EnvInject不讀環境變量
- 14. 相當於-x的Bash環境變量?
- 15. 讀取web.config中的環境變量
- 16. 閱讀從屬性文件在Java與從詹金斯閱讀環境變量
- 17. Bash:每個登錄環境變量
- 18. 將JSON轉換爲bash環境變量
- 19. BASH腳本,環境變量和PID
- 20. 設置環境變量從外部bash
- 21. bash腳本不拾取環境變量
- 22. 使用源更新bash環境變量
- 23. 如何打印TCL中的所有環境變量?
- 24. 在revel app.conf中讀取環境變量
- 25. 如何檢測Bash環境變量是否被讀取?
- 26. 從beanstalk閱讀環境變量爲reactjs網絡應用程序
- 27. 閱讀Windows環境變量(編碼/字符集問題)
- 28. 閱讀環境變量時,JSON.parse/stringify有什麼用?
- 29. 在Spring應用程序環境中讀取環境變量
- 30. 無法在TCL中使用環境變量(Linux/Unix)
只要我寫你的代碼並執行它。但我沒有得到。我在tclsh提示符下。我的提示是%。所以我只是輸入提示%set tmpdir $ :: env(TMP)。輸出就像不能讀取「:: env(TMP)」:沒有這樣的變量 – 2011-04-01 08:58:09
其實我想寫一個proc是tcl,它返回Bash環境變量的值。 – 2011-04-01 09:39:46
這是因爲您沒有名爲TMP的環境變量。你讀過我給你的鏈接了嗎? – TrojanName 2011-04-01 11:17:43