我有一个期望的脚本,检查远程服务器上是否存在文件,然后尝试打印(使用猫),如果它
期望脚本由于某种原因而忽略这些命令。
send "if {[file exists "./abc.test"]} {cat ./abc.txt\r}"
我从来没有使用Expect,但你的代码示例…
if {[file exists "./abc.test"]} {send "cat ./abc.txt\r"}
…似乎检查机器上的文件存在期望运行,而不是远程的。 所以,除非脚本在远程服务器上运行,否则将无法工作。
这是我做了什么,现在它工作
cat /some/path/abc.txt 2> /dev/null
这样,如果文件存在,文件将被打印,如果不存在则不会抛出错误。
呃,你可能是以相当迂回的方式做事。
首先,请描述您的情况:
最后,你真的想做什么? 如果你想在远程系统上打印文件,直接调用ssh可能更容易。 Expect是指没有脚本语言的脚本程序(比如简单的ftp客户端)。 将它与命令shell一起使用是非常复杂的,它已经具有强大的脚本语言。