我正在创建一个非常简单的基于nodeJs的终端。 有一个编辑文本框供用户输入命令。 nodeJs脚本将执行命令并显示结果。
基础是
result = exec(evalLines, evalCallBack);
如果用户在编辑框中键入ls
,则会显示__dirname目录内容。如果他更改目录cd ..
,则目录将更改为父目录。到目前为止,所有人都说非常明显。
如何关注cwd更改的位置?
的index.html
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Terminal</title>
</head>
<body>
<h3>Enter the Shell commands in the top box and press Shift + Enter to execute it</h3>
<form>
<textarea type="text" id="execCode" style="width: 100%; height: 100px">cd ./Users
ls
</textarea>
</form>
<textarea type="text" id="execResult" style="width: 100%; height: 100px"></textarea>
<span id="restartExt1">Restart Extension</span>
<script src="../js/libs/jquery-2.0.2.min.js"></script>
<script src="../js/buttons2.js"></script>
</body>
</html>
Teminal.js
(function() {
var exec = require('child_process').exec;
var evalCallBack = function(error, result) {
// looking to change the '@' to the NEW current working domain
$("#execResult").val((error || result) + '@$ \n');
};
$('#execCode').keypress(function(key) {
if (key.keyCode == 13 && key.shiftKey) {
exec($('#execCode').val(), evalCallBack);
}
});
})();
我要做的是将'@ $'替换为新目录。
注意我看到How to get the cwd (current working directory) from a nodejs child process (in both windows and linuxish),但答案对我没有帮助。