我正在创建一个Web shell客户端并成功创建了一个简单的终端。
我可以执行基本命令,但我需要执行 sudo -i 并传递密码。
发送" sudo -i"命令,我"期待"新用户(以root用户身份)提示,但"期待"永远等待。我可以看到提示符合预期。
此代码仅适用于' sudo'操作和工作正常。常用命令以分开的方法进行。
show
常用命令(run(String command)方法): 这将阻止expect.expect(),如果我做了一个SUDO(如果我在sudo之前尝试这个,那么一切正常)...
expect.sendLine( "sudo -i" );
expect.expect( Matchers.contains( ":" ) );
expect.sendLine( password );
// Old prompt was user prompt : user + "@"
// Now I need the root prompt : user + ":"
PROMPT = user + ":";
错误(期待sudo提示):
expect.sendLine( command );
String result = expect.expect( Matchers.contains( PROMPT ) ).getInput();
答案 0 :(得分:1)
expect.sendLine( command );
String result = expect.expect( Matchers.contains(":")).getInput();
int pos = result.indexOf(PROMPT);
if (pos > -1) {
// SUCCESS
} else {
// FAILURE
}