我这里有一个奇怪的情况。我需要在脚本 getValue.itcl 上运行 exec,但如果我尝试使用输入重定向内联运行它,我将没有得到任何输出。抱歉,如果我使用了错误的术语。
内联使用它有助于此脚本的其他方面,否则我需要分开各个部分。我正在使用 tcl 8.0(没有选项)。
示例:当我使用作为 tclsh 重新启动的 shell 脚本时,此方法有效。
#!/bin/sh
#
# \
cd 'dirname $0'
# Next line restarts as tclsh \
exec tclsh 'basename $0' $*
proc Main { } {
set val [exec getValue.itcl PARAMETER]
puts "$val"
}
Main
exit
但是,如果我在脚本中以不同的方式运行它,它将不起作用。
这不起作用:
#!/bin/sh
#
tclsh << EOSCRIPT
set val [exec getValue.itcl PARAMETER]
puts "$val"
EOSCRIPT
exit 0
我不会得到任何输出,我看不出在第一种方法中使用 tclsh 与在第二种方法中简单地执行命令时有什么区别。
谢谢