从内部调用 proc 将 TCL 命令放入文件中
calling a proc from inside puts TCL command and put it in file
我正在尝试从 puts 语句中调用一个 proc,并使用 TCL 将其放入一个文件中,如下所示
set fp_jason [open jason.txt w]
proc MY_FUNCTION { } {
puts "Experiment success"
}
puts $fp_jason " [MY_FUNCTION] "
上述脚本在 jason.txt 中的输出为空
实验成功打印在 shell
我希望 jason.txt 包含的所需输出是
$cat jason.txt
Experiment success
可以帮助我在 jason.txt
中获得所需的输出
提前致谢。
您必须使用方括号来应用命令替换。
puts [MY_FUNCTION]
当你puts
没有指定频道时,你会puts
到stdout
。如果你想把一个字符串放到一个文件中,你通常会这样做:
puts $fp_jason "Experiment success"
因此,如果您用函数替换 Experiment success
,该函数必须 return
字符串 Experiment success
,因此自动变为:
set fp_jason [open jason.txt w]
proc MY_FUNCTION { } {
return "Experiment success"
}
puts $fp_jason "[MY_FUNCTION]"
我删除了函数前后的空格,因为看起来您不需要它们。此外,如果除了函数的结果(或任何可能被解释器解释为附加参数的任何内容)之外,您没有向文件中添加任何内容,您可以安全地使用:
puts $fp_jason [MY_FUNCTION]
如果您这样做,请使用引号,因为您在字符串中使用了空格:
proc MY_FUNCTION { } {
return "4"
}
puts $fp_jason "A table has [MY_FUNCTION] legs"
这是错误的,因为每个单词都会被解释为命令的参数 puts
:
proc MY_FUNCTION { } {
return "4"
}
puts $fp_jason A table has [MY_FUNCTION] legs
我正在尝试从 puts 语句中调用一个 proc,并使用 TCL 将其放入一个文件中,如下所示
set fp_jason [open jason.txt w]
proc MY_FUNCTION { } {
puts "Experiment success"
}
puts $fp_jason " [MY_FUNCTION] "
上述脚本在 jason.txt 中的输出为空
实验成功打印在 shell
我希望 jason.txt 包含的所需输出是
$cat jason.txt
Experiment success
可以帮助我在 jason.txt
中获得所需的输出提前致谢。
您必须使用方括号来应用命令替换。
puts [MY_FUNCTION]
当你puts
没有指定频道时,你会puts
到stdout
。如果你想把一个字符串放到一个文件中,你通常会这样做:
puts $fp_jason "Experiment success"
因此,如果您用函数替换 Experiment success
,该函数必须 return
字符串 Experiment success
,因此自动变为:
set fp_jason [open jason.txt w]
proc MY_FUNCTION { } {
return "Experiment success"
}
puts $fp_jason "[MY_FUNCTION]"
我删除了函数前后的空格,因为看起来您不需要它们。此外,如果除了函数的结果(或任何可能被解释器解释为附加参数的任何内容)之外,您没有向文件中添加任何内容,您可以安全地使用:
puts $fp_jason [MY_FUNCTION]
如果您这样做,请使用引号,因为您在字符串中使用了空格:
proc MY_FUNCTION { } {
return "4"
}
puts $fp_jason "A table has [MY_FUNCTION] legs"
这是错误的,因为每个单词都会被解释为命令的参数 puts
:
proc MY_FUNCTION { } {
return "4"
}
puts $fp_jason A table has [MY_FUNCTION] legs