tclhttpd无法在没有奇怪的破解的情况下自定义源代码脚本

tclhttpd无法在没有奇怪的破解的情况下自定义源代码脚本,tcl,Tcl,我使用tcllib v1.3运行tclhttpd和TCL 8.5,遇到了一个非常奇怪的问题: # tclsh8.5 bin/httpd.tcl <Snip> /home/enigma/tclhttpd3.5.1/bin/../custom/dodirs.tcl: couldn't read file "/home/enigma/tclhttpd3.5.1/bin/../custom/dodirs.tcl": no such file or directory /home/enigm

我使用tcllib v1.3运行tclhttpd和TCL 8.5,遇到了一个非常奇怪的问题:

# tclsh8.5 bin/httpd.tcl 
<Snip>
/home/enigma/tclhttpd3.5.1/bin/../custom/dodirs.tcl: couldn't read file "/home/enigma/tclhttpd3.5.1/bin/../custom/dodirs.tcl": no such file or directory
/home/enigma/tclhttpd3.5.1/bin/../custom/faq.tcl: couldn't read file "/home/enigma/tclhttpd3.5.1/bin/../custom/faq.tcl": no such file or directory
/home/enigma/tclhttpd3.5.1/bin/../custom/hello.tcl: couldn't read file "/home/enigma/tclhttpd3.5.1/bin/../custom/hello.tcl": no such file or directory
/home/enigma/tclhttpd3.5.1/bin/../custom/mypage.tcl: couldn't read file "/home/enigma/tclhttpd3.5.1/bin/../custom/mypage.tcl": no such file or directory

通过这一小部分调试,服务器将找到上述文件并开始正确运行。有人知道可能是什么问题吗?我认为我额外的调试不应该改变行为。
[file is file…]
是否会以某种方式影响后面的
if
语句中的
源代码?如果我将调试设置为
如果{0}{…
,文件错误将再次发生。

答案似乎是它不喜欢从远程装载的目录运行tclhttp服务器。我这样做是为了快速测试服务器是否会在我的目标上运行


在目标的本地存储上复制tclhttp删除了此错误。但奇怪的是,
file isfile
命令不知何故允许TCL从远程安装的位置获取自定义命令TCL脚本!无法解释这一点!

此目录存在吗?/home/enigma/tclhttpd3.5.1/bin/。/customAny good reason是否要使用非常旧的tcllib 1.3版本,1.16是当前版本?@Glen Yeah该文件存在。
文件isfile
返回true。@Sclenk它是由遗留的…系统用它进行测试的,不能升级只是我的一点点遗憾。感谢您的响应多一点信息…目前,为了测试,运行tclhttpd脚本从一个重新开始mote mount…将在本地挂载此文件,以查看这是否导致故障您最好使用
glob-nocomplain-directory$Config(库)*.tcl
而不是
文件连接
,但这可能无法解决您的问题…哦,远程装载。不幸的是,它们有时非常糟糕:它们在处理文件系统语义方面往往不完整,而且在测试文件是否存在等领域,问题往往会浮出水面。尽管如此,这还是有点奇怪在测试中,如果文件存在,则表示“是文件确实存在”,但后面的
源代码则表示“文件不存在”:
foreach f [lsort -dictionary [glob -nocomplain [file join $Config(library) *.tcl]]] {
        ###### START MY DEBUG
        if {1} {
            Stderr "Considering $f..."
            if { [file isfile $f]  == 1} {
                Stderr "File looks good"
            } else {
                Stderr "ERROR"
            }
        }
        ###### END MY DEBUG

        if {[string compare [file tail $f] "pkgIndex.tcl"] == 0} {
            Stderr "Continuing NOT loading"
             continue
        } elseif {[catch {source $f} err]} {
             Stderr "$f: $err"
        } elseif {$Config(debug)} {
             Stderr "Loaded [file tail $f]: $err"
        }
    }