如何使用 child_process 在相同和不同的终端上执行 运行 命令?

How do I run commands on the same and different terminals with child_process?

我想一键执行多个终端事件。但是在一个终端中 运行 执行 roscore 命令后,我必须在另一个终端关闭之前 运行 再执行两个命令(这两个命令必须在同一个终端)。这怎么可能?

exec('cd ~/catkin_ws', (error, stdout, stderr) => {
            if (error) {
                if (error.signal == 'SIGTERM') {
                    console.log(error);
                } else {
                    console.log(stderr);
                }
            } else {
                console.log(stdout);
                exec('pwd', (error, stdout, stderr) => {
                    if (error) {
                        if (error.signal == 'SIGTERM') {
                            console.log(error);
                        } else {
                            console.log(stderr);
                        }
                    } else {
                        console.log(stdout);
                    }
                });
            }
        });

例如,我试图使上面的pwd输出为/home/famara/catkin_ws。但是我得到的结果是 /home/famara.

很多方法我都没有试过。我也读过 this page 但没读过。

在这里你做这样的事情。更简单的方式。

cd ~ returns 您转到您的用户帐户的主文件夹。

pwd 打印当前目录名,完整路径从根(/)开始

exec('cd ~/catkin_ws && pwd', (error, stdout, stderr) => {
 if (error) {
  if (error.signal == 'SIGTERM') {
   console.log(error);
  } else {
   console.log(stderr);
  }
 } else {
  console.log(stdout);
 }
});