jsp*_*ada 4 tcl environment-variables renderman
所以我一直试图找到一个答案,但在互联网上找不到答案.我需要检查环境变量是否存在.我以为我有正确的代码,但它一直返回错误.
if { [info exists ::env(USER)] } {
RAT::LogMsg INFO "Found USER"
} else {
RAT::LogMsg INFO "Nope!"
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
您可能想要检查实际设置的环境变量; 我认为这不是USER保证之一.
RAT::LogMsg INFO "Got these env-vars: [lsort [array names ::env]]"
Run Code Online (Sandbox Code Playgroud)
如果puts stdout适用于您的环境,您可以尝试:
parray ::env
Run Code Online (Sandbox Code Playgroud)
(该parray命令是一个漂亮打印数组的过程.)
要可靠地获取当前用户名,请检查tcl_platform数组的user元素.该数组由Tcl内部生成(好,通过探测相关的基本OS API),而不是通过查看环境变量,并且该特定元素始终至少返回到Tcl 8.4.
RAT::LogMsg INFO "Username is $::tcl_platform(user)"
Run Code Online (Sandbox Code Playgroud)
我刚刚注意到文档是错误的:它表示user元素来自USER和/或LOGNAME环境变量.它没有,也没有至少8.5和8.6.(这绝对是我的错误.当我修复它时,我忘了更新代码.哎呀!)
你有正确的代码,在 tclsh 中测试:
% if {[info exists ::env(USER)]} {puts "found $::env(USER)"}
found strobel
%
Run Code Online (Sandbox Code Playgroud)
问题一定出在您的环境中。
| 归档时间: |
|
| 查看次数: |
7033 次 |
| 最近记录: |