Я пытаюсь выполнить команду, которая запрашивает несколько входных данных, например, если вы пытаетесь скопировать файл с локального устройства на удаленное устройство, которое мы используем scp test.txt user@domain:~/
, то оно запрашивает у нас пароль.Я хочу написать код go, в котором я предоставляю пароль в самом коде, например pass:='Secret Password'
.Точно так же у меня есть команда CLI, где она запрашивает у нас несколько вещей, таких как IP, имя и т. Д., Поэтому мне нужно написать код, в котором я просто объявляю все значения в самом коде, и когда я запускаю код, он ничего не спрашиваетпросто возьмите все входные данные из кода и выполните команду CLI в случае копирования файла на удаленный компьютер, он не должен запрашивать у меня пароль при запуске моего двоичного файла, он должен напрямую копировать мой файл для удаленного принятия решения.
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)
}
}
Если я использую этот код, он привязан к паролю пользователя @ домена:
И файл не копируется на удаленное устройство.