这是我的hello.sh shell脚本
VALID_NAME="abcd"
echo "Name: "
read name
if [ "$name" == $VALID_NAME ]; then
echo "correct"
else
echo "unexpected input"
fi========================================================
这是我的Java代码
import java.io.IOException;
import expectj.*;
public class Trial {
public static void main(String[] args) {
ExpectJ exp = new ExpectJ();
String command = "sh /root/Desktop/hello.sh";
Spawn s;
try {
s = exp.spawn(command);
s.expect("Name: ");
s.send("abcd");
System.out.println(s.getCurrentStandardOutContents());
s.stop();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TimeoutException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch (ExpectJException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}======================================================================
,这是我的输出
名称://这是它要求的
give..and //这就是我--什么都没发生--
============================================================
我已经更正了上面的java代码。
发布于 2011-04-18 11:38:47
在您寻找的Java代码中
s.expect("VALID_NAME=");然而,在您的Bash代码中,您有:
echo "Name: "似乎只需将Java代码更改为以下代码就可以了:
s.expect("Name: ");发布于 2011-04-18 11:55:50
我从未使用过ExpectJ,但是错误消息sh: hello.sh: No such file or directory的开头提示它找不到您的shell脚本。你试过完整的脚本路径吗?
String command = "sh /root/Desktop/hello.sh";https://stackoverflow.com/questions/5702178
复制相似问题