gpt4 book ai didi

Node.js - 执行 shell 命令并初始化 .bashrc

转载 作者:太空宇宙 更新时间:2023-11-03 23:57:17 27 4
gpt4 key购买 nike

我正在编写一个用于开发的小型实用工具,用于通过 ssh 同步文件。通常我使用 .bashrc 文件中设置的 ssh-agent 来轻松连接到我的开发服务器。我想在脚本中使用 exec,但是每次发出请求时都调用 ssh-agent 听起来有点不理想。

有没有办法可以执行代理代码一次,然后让它适用于我发出的所有后续 ssh 请求?例如。像终端模拟器一样生成一个 shell 进程,然后使用该进程执行命令,而不是使用每个命令调用一个新的 shell。

我想这样做的原因是我不想将密码存储在配置文件中。

最佳答案

您可以创建一个 ssh 进程,然后使用同一进程执行其他命令。这是一个如何将它用于 bash 的示例。我正在创建一个新的 bash shell 并执行命令 ls -la 和 exit 您可以执行其他命令。

const cp = require("child_process")

class MyShell {
constructor(command) {
this._spawned = cp.spawn(command, {
stdio: ["pipe", "pipe", "inherit"],
})
}
execute(command, callback) {
this._spawned.stdin.write(command + "\n")
this._spawned.stdout.on("data", (chunk) => {
if (callback) {
callback(chunk.toString())
}
})
}
}

var myShell = new MyShell("bash")
myShell.execute("ls -la", (result) => {
console.log(result)
})
myShell.execute("exit")

关于Node.js - 执行 shell 命令并初始化 .bashrc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56528084/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com