Tcl 为什么我会得到;“未找到命令”;运行我的Expect脚本时?

Tcl 为什么我会得到;“未找到命令”;运行我的Expect脚本时?,tcl,expect,Tcl,Expect,我今天一直在玩Expect/TCL,我希望有人能告诉我为什么下面的脚本会失败: : command not found ./expect3: line 3: send: command not found send和close命令都失败了,但我用spawn命令编写的其他脚本似乎工作正常?问题 主要问题是没有正确地分离命令。TCL中的命令必须用换行符或分号分隔 解决方案 通常,每行应该只有一个Expect或TCL命令,除非您有一个格式正确的复合语句。例如,此修订的代码段将起作用: #!/u

我今天一直在玩Expect/TCL,我希望有人能告诉我为什么下面的脚本会失败:

: command not found  
./expect3: line 3: send: command not found

send和close命令都失败了,但我用spawn命令编写的其他脚本似乎工作正常?

问题 主要问题是没有正确地分离命令。TCL中的命令必须用换行符或分号分隔

解决方案 通常,每行应该只有一个Expect或TCL命令,除非您有一个格式正确的复合语句。例如,此修订的代码段将起作用:

#!/usr/bin/expect -f

send "We are going to open up a file for reading, ok?\n"
expect "ok"
因为send和expect命令由换行符分隔

另见

@IgnacioVazquez Abrams下次,只要把它清理干净就行了。如果你对此有强烈的感觉,请不要把它留给别人。如果我去清理他们的烂摊子,一个人将如何学习?我有一句谚语,“当其他人不再哑巴时,我将学习更好的拼写。”我有一种影响我工作记忆并导致我犯错误的护士病。为什么对我来说,尝试一个比我笨的人叫做欺负,但人们却认为我犯的错误是因为我懒惰,这很好?智商排名前2%的人会根据我的拼写来判断我。。。算了吧!没有人根据你的拼写来评判你。好。。。我不是在评判你;我不能为他说话…在互联网上,没有人知道你是一只狗。太好了,我刚刚发现你可以通过SFTP直接使用带有插件的notepad++编辑文件。在windows机器上使用linux脚本时效果非常好。唯一的问题是你创建了一个新的文件在记事本++它给它的windows下线格式!谢谢你指出这些问题,我想我可能要过一段时间才会想到这一点@Devil Tcl对CR-NL处理非常满意,可以适应文件中的任何内容,但Unix却不是。第一个
#行必须有正确的终止符(或者您可以执行
expect./yourscript.exp
而不是
/yourscript.exp
来覆盖exec魔术搜索)。
#!/usr/bin/expect -f

send "We are going to open up a file for reading, ok?\n"
expect "ok"