Ungültiger Vorgang beim Versuch, TCL-Code auszuführen

Ungültiger Vorgang beim Versuch, TCL-Code auszuführen

Ich versuche, über das Terminal ein Skript mit Tcl-Code namens auszuführen myscript.tcl. Gemäß dem von mir verwendeten Tutorial soll ich chmod +x myscript.tclden Code eingeben und dann mit ausführen ./myscript.tcl. Beachten Sie, dass ich dem Tcl-Skript #!/home/localadmin/Desktopgemäß dem Tutorial auch Folgendes hinzugefügt habe. Bei der Ausführung erhalte ich jedoch den Fehler Invalid Operation. Warum tritt dies auf und wie kann ich es beheben?

Genauer Fehler:E: Invalid operation ./myscript.tcl

Link zum Tutorial:https://www.youtube.com/watch?v=U5m_vuBzdZE&list=PL7616FA0112D74AD3&index=2, siehe 1:10

Der Code :

#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

Nachverfolgen:

Ein weiteres Skript, das ich habe -

#!/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"]

Erzeugt den gleichen Fehler: E: Invalid operation ./lesson3.tcl. Ich habe dasselbe verwendet shebang, das ich in dieser neuen Datei im Originalbeitrag gefunden habe, und es hat das Problem behoben. Allerdings tritt beim Versuch, diese neue Datei auszuführen, immer noch der gleiche Fehler auf.

Antwort1

Ich vermute, der Grund, warum Ihr Skript nicht ausgeführt wird, ist, dass Ihr Skript shebangvöllig falsch ist. Der Sinn des Skripts shebangbesteht darin, dem Compiler mitzuteilen, mit welchem ​​Paket oder Programm das Skript ausgeführt werden soll. Es #!/home/localadmin/Desktopverweist auf nichts, was den Compiler interessiert (nehme ich an).

Alles andere sieht bisher richtig aus (auch hier bin ich nicht vertraut mit tcl). Ich würde also versuchen, die erste Zeile im Skript in etwa wie folgt zu ändern

myscript.tcl

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

Falls dies nicht funktioniert, können Sie alle Fehler, die die Ausführung des Skripts verhindern würden (wie Syntaxfehler und dergleichen), aufspüren, indem Sie

tclsh your_script.tcl


Nach dem Ansehen des Videos ist dieses Tutorial für Sie nicht relevant (vorausgesetzt, Sie verwenden wirklich Ubuntu), um das Skript auszuführen

verwandte Informationen