我正在尝试一种新方法来解决我一直困扰的问题。我没有使用expect4j来连接我的SSH连接,(我无法找出阻止消费者运行和关闭问题的方法,如果你知道并感到圣洁,请参阅以前的帖子以获取更多信息),我将尝试使用期望脚本。我有一个运行时编码到一个button.onclick,见下文。为什么我获得127退出价值?我基本上只是需要这个期望的脚本ssh,运行一套期望和发送,给我读数,这就是它...
我正在使用cygwin。不知道这是否与为什么这不起作用有关......是我的sh-bang线指向正确的地方?我的cygwin安装是一个完整安装,所有软件包位于C:\ cygwin。
为什么我得到127退出值而不是从我的服务器读出,我该如何缓解这一点?
try
{
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec( new String [] {"C:\\cygwin\\bin\\bash.exe", "C:\\scripts\\login.exp"});
InputStream stdin = proc.getInputStream();
InputStreamReader isr = new InputStreamReader(stdin);
BufferedReader br = new BufferedReader(isr);
String line = null;
System.out.println("");
while ( (line = br.readLine()) != null)
System.out.println(line);
System.out.println("");
int exitVal = proc.waitFor();
System.out.println("Process exitValue: " + exitVal);
} catch (Throwable t)
{
t.printStackTrace();
}
#!/usr/bin/expect -f
spawn ssh userid@xxx.xxx.xxx.xxx password
match_max 100000
expect "/r/nDestination: "
send -- "xxxxxx\r"
expect eof