我想为基于linux-web的终端创建一个简单的“历史记录”功能。
用户可以在文本框中输入任何linux命令。按下return后,该命令实际上是在linux shell上执行的,并使用exec()函数,我在浏览器上返回输出。
当用户键入关键字(例如文本框中的“历史记录”)时,将显示输入到texbox中的最后十个linux命令。我该如何实现呢?
答案 0 :(得分:2)
$('#submit').click(
function (){
$.ajax({
url: "test.php",
method: "get",
dataType: "text",
data: {cmd: $('#command').val() },
success: function(data){
$('#display').html(data);
}
});
}
)
<div id="display"></div>
<input type="text" id="command"/>
<a href="#" id="submit">submit</a>
在test.php上,获取命令,执行命令并显示结果。
$cmd = $_GET['q'];
exec($cmd, $output);
echo "<pre>";
print_r($output);
echo "</pre>";
更新 ::你去了,你的完整代码
<script src="jquery.js"></script>
<script>
var commands = new Array();
$(function (){
$('#cmd').keydown(
function (event){
if(event.keyCode == 13){
event.preventDefault();
/*you can call your function here*/
var tmp = $(this).val();
commands.push(tmp);
if(tmp == 'history')
{
showlog();
return false;
}
$.ajax({
url: "exec.php",
method: "get",
dataType: "text",
data: { q: tmp},
success: function(response){
$('#txtOut').html(response);
}
});
/*still you can it here*/
}
}
);
});
function showlog()
{
$('#txtOut').html(function ()
{
var txt="<br/>";
for(var i=1; i<=commands.length-1; i++)
{
txt += commands[i]+"<br/>";
}
return txt;
});
}
</script>
<input type="text" id="cmd"/>
<a href="#" id="showlog">show log</>
<div id="txtOut"></div>