[英]How to run a TCL script from shell script?
我是TCL脚本和shell脚本的新手。 我想从shell脚本调用TCL脚本。 我试过如下。
#!/bin/sh
for i in {1..5}
do
my_script
test_script
done
如果我运行脚本,它会抛出如下错误,
./sample.sh: line 5: my_script: command not found
./sample.sh: line 5: test_script: command not found
任何人都可以帮我解决这个问题吗?
提前致谢。
如果在$PATH
找不到它们,则必须提供脚本的路径,例如:
./my_myscript # current directory
/path/to/test_script # absolute path
如果您还没有使脚本可执行(使用chmod +x
),那么您需要使用:
tclsh my_script.tcl
或者也许是tclsh8.5 /path/to/script.tcl
或其中的许多变体。
如果您已使脚本可执行,请检查包含该脚本的目录是否在您的PATH
(如果没有,请使用脚本的完整文件名或调整您的PATH
)并确保您拥有合适的#!
线。 通常推荐的是:
#!/usr/bin/env tclsh8.5
因为这将搜索你的路径以获取tclsh8.5
可执行文件而不是硬编码。
来自man tclsh
。 我想第二个块可以回答你的问题。
如果在第一行是
#!/usr/local/bin/tclsh
的文件中创建Tcl脚本,那么如果将文件标记为可执行文件,则可以直接从shell调用脚本文件。 [...]更好的方法是使用以下三行启动脚本文件:
#!/bin/sh # the next line restarts using tclsh \\ exec tclsh "$0" ${1+"$@"}
这种方法比前一段的方法有三个优点[...]
您应该注意,通常的做法是安装tclsh及其版本号作为名称的一部分。这样做的好处是允许同时在同一系统上存在多个版本的Tcl,但也有一个缺点,就是让它变得更难编写在不同版本的Tcl中统一启动的脚本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.