我正在尝试在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
但得到了同样的错误。 有什么想法吗?
答案 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路径中移动脚本。
将脚本移动到“更简单”的路径对我来说很有用。我不确定原因,也不知道如何解决这种不端行为。