我正在尝试执行一个要求多个输入的命令,例如,如果您尝试将文件从本地设备复制到我们使用的远程设备,那么它会scp test.txt user@domain:~/要求我们输入密码。我想要的是我想编写一个 go 代码,例如,我在代码本身中提供密码pass:='Secret Password'。同样,我有 CLI 命令,它要求我们提供 IP、名称等几项内容,因此我需要编写一段代码,我只在代码本身中声明所有值,当我运行代码时它不会询问任何内容只需从代码中获取所有输入并运行 CLI 命令,以防将文件复制到远程它不应该在我运行我的 go 二进制文件时询问我密码它应该直接将我的文件复制到远程决定。
func main() {
cmd := exec.Command("scp", "text.txt", "user@domain:~/")
stdin, err := cmd.StdinPipe()
if err = cmd.Start(); err != nil {
log.Fatalf("failed to start command: %s", err)
}
io.WriteString(stdin, "password\n")
if err = cmd.Wait(); err != nil {
log.Fatalf("command failed: %s", err)
}
}
如果我使用此代码,它会卡在 user@domain 的密码上:
并且没有文件被复制到远程设备。
精慕HU
达令说
有只小跳蛙
相关分类