尝试运行 tcl 代码时操作无效

尝试运行 tcl 代码时操作无效

使用终端,我尝试执行包含名为 的 tcl 代码的脚本myscript.tcl。根据我所遵循的教程,我将chmod +x myscript.tcl使用 键入然后运行代码./myscript.tcl。注意,在 tcl 脚本中,我还#!/home/localadmin/Desktop按照教程将内容添加到脚本中。但是,执行时,我收到错误Invalid Operation。为什么会发生这种情况?我该如何解决?

精确误差:E: Invalid operation ./myscript.tcl

教程链接:https://www.youtube.com/watch?v=U5m_vuBzdZE&list=PL7616FA0112D74AD3&index=2,参考1:10

代码 :

#variables set to integer will ALWAYS be integer, cannot assign strings
set x 3

set y 4

#$x means the value of x
#whatever happens after expr will take it as a mathematical expression
#whatever inside brackets is executed
set z [expr $x + $y]

#text is option for command label
#the . represents anything coming from main window after execution
label .sum -text "z is $z"

label .myname -text "My NAME is RAND PAUL"

incr z

label .increment -text "incrementing z -> $z"

#pack puts the previous labels on te main window
#without pack, will discard the labels
pack .myname .increment .sum

跟进:

我还有另一个脚本-

#!/usr/bin/tclsh


#Lesson 3 tk/tcl lists


set to_do [list]
lappend to_do "name"
lappend to_do "is"
lappend to_do "bobby"
lappend to_do "jones"

set num [list 0 1 2 3 4 5 6 7 8 9 10 11]
puts $to_do
puts $num
puts "index 0 is [lindex $to_do 0]"
puts "index 3 is [lindex $to_do 3]"
puts "replacing one element..."
puts [lreplace $num 3 3 [list 30 40 50 60]]
puts "replacing a range of elements from index 3 till ndex 6 => other indexees from 4 till 6 will deleted"
puts [lreplace $num 3 6 [list 30 40 50 60]]

puts "inserting one element at index 1 (2nd element that is)..."
puts [linsert $num 1 "new list element"]

产生相同的错误:E: Invalid operation ./lesson3.tcl。我使用了shebang原始帖子中这个新文件中的相同内容并修复了它,但是,在尝试运行这个新文件时仍然出现相同的错误。

答案1

我猜你的脚本没有运行的原因是因为你shebang完全错了。 的目的shebang是告诉编译器用哪个包或程序运行脚本,而#!/home/localadmin/Desktop编译器并不关心这一点(我猜)

到目前为止,其他一切都看起来正确(我再次不熟悉tcl)所以我会尝试将脚本中的第一行更改为以下内容

脚本文件

 #!/usr/bin/tclsh
 my_script.....

假设这不起作用,您可以通过运行以下命令来查找任何可能阻止脚本运行的错误(例如语法错误等)

tclsh your_script.tcl


看完视频后,本教程不适用于您(假设您确实在运行 ubuntu)如何运行脚本

相关内容