TCL / TCLSH没有这样的文件或目录

时间:2011-05-20 12:49:56

标签: cygwin tcl

我正在尝试在Windows 7上构建一个名为Slicer3的软件,它具有“超级构建”功能。 这是一个一体化的TCL脚本,用于签出和构建Slicer3。

我运行CYGWIN并导航到正确的目录,然后运行脚本并得到:

$ ./Slicer3-svn/Scripts/getbuildtest.tcl
couldn't read file "./Slicer3-svn/Scripts/getbuildtest.tcl": no such file or directory

显然我确信该文件存在,并且我给了777权限。我正在以管理员身份运行cygwin。

tcl文件内容的开头是:

#!/bin/sh
# the next line restarts using tclsh \
exec tclsh "$0" "$@"

所以我尝试评论第3行并直接运行

$ tclsh ./Slicer3-svn/Scripts/getbuildtest.tcl

但得到了同样的错误。 有什么想法吗?

2 个答案:

答案 0 :(得分:4)

我会尽量帮助排除故障:

确定您是否安装了tclsh并且它位于PATH中:

$ tclsh

确定tclsh是否适用于简单脚本:

$ echo puts hello > hello.tcl; tclsh hello.tcl

确定脚本是否存在且可读:

$ cat ./Slicer3-svn/Scripts/getbuildtest.tcl
$ cd ./Slicer3-svn/Scripts
$ cat getbuildtest.tcl

至于行尾(DOS CRLF与Unix LF):

$ cd ./Slicer3-svn/Scripts
$ sed 's/\r\n/\n/g' getbuildtest.tcl > getbuildtest_new.tcl
$ tclsh getbuildtest_new.tcl

这样,如果任何步骤失败,我们可以缩小问题范围。

答案 1 :(得分:1)

描述:TCLSH无法读取文件:没有这样的文件或目录。 可能的原因:CYGWIN下的TCLSH无法正确解析Windows PATH,无法找到文件。 解决方法:在CYGWIN路径中移动脚本。

将脚本移动到“更简单”的路径对我来说很有用。我不确定原因,也不知道如何解决这种不端行为。