使用Nodejs更改bash终端的当前工作目录

时间:2017-01-04 10:20:59

标签: node.js linux bash

我想开发一个Node CLI应用程序,它可以克隆一个git repo并将其放入其中。

例如。

function Dropdown1() {
    document.getElementById("dropdown-menu-1").style.display = "inline-block";
    document.getElementById("down-nav-1").style.cssText = "border: solid 3px gray;background-color: gray;border-radius: 10px;";
}

$(document).click(function(event) {
    if(!$(event.target).closest('#dropdown-menu-1').length) {
        if ( ($('#dropdown-menu-1').style.display = "None" ) {
            $('#dropdown-menu-1').style.display = "inline-block";
        }
    }
})

我能够克隆它,但无法dummyuser:~$ dummy-cli-command dummy-git-repo-url Cloning repository... dummyuser:~/Workspace/dummy-git-repo$ 进入它。我知道该节点会分配一个子进程,在该进程下它执行我的代码,并且无法更改我首次执行node-cli-command的bash终端的目录。有人可以帮我解决任何问题吗?

1 个答案:

答案 0 :(得分:0)

你将无法做到这一点 - 不是使用Node而不是任何其他程序。您甚至无法使用shell脚本执行此操作,但您可以使用shell别名或函数执行此操作,但前提是它不是作为子进程运行。

这意味着,如果您的Node程序将正确的目录返回到运行它的shell别名或shell函数,并且它是执行目录更改的别名或函数,那么您可以实现这一点。如果通过命令行参数获取目标,该别名或函数可以首先知道目标。但话说回来,如果你使用shell函数,那么你首先不需要Node来克隆repo。

最重要的是,您将无法从子进程更改shell的工作目录,因此您可以通过在同一进程中运行代码(如别名或shell中的函数)来实现此方法

相关问题