用户是否可以输入密码,例如"12345"或"12345" - 开头或结尾的空格?或者你会修剪密码以删除前导或尾随空格,因为它可能只是输入错误.
我需要在golang代码中使用lxd-p2c( https://github.com/lxc/lxd/tree/master/lxd-p2c )。
我尝试将密码传递给lxd-p2c由上述代码构建的二进制文件,该二进制文件使用term.ReadPassword(0)(https://github.com/lxc/lxd/blob/master/lxd-p2c/utils.go#L166)在Linux中读取密码。
我在互联网上进行了一些搜索并尝试了以下代码,但它们不起作用。
# 1
cmd := exec.Command(command, args...)
cmd.Stdin = strings.NewReader(password)
# 2
cmd := exec.Command(command, args...)
stdin, _ := cmd.StdinPipe()
io.WriteString(stdin, password)
Run Code Online (Sandbox Code Playgroud)
类似但简单的测试代码:https://play.golang.org/p/l-9IP1mrhA(代码来自/sf/answers/2293793561/)
构建二进制文件并在 go 中调用它。
编辑:
没有找到解决方法,我term.ReadPassword(0)在源代码中删除了。
在 C# 中,执行程序可以使用以下命令检测它是否在调试器中运行:
System.Diagnostics.Debugger.IsAttached
Run Code Online (Sandbox Code Playgroud)
在 Go 中有等价物吗?我有一些超时,我想在我逐步执行代码时将其禁用。谢谢!
我正在使用 GoLand 调试器。
如何在终端中隐藏用户输入(密码字段),类似于bash中的-s命令read -s p "password " password.?
var password string
fmt.Println("password: ")
fmt.Scan(&password)
Run Code Online (Sandbox Code Playgroud)
如何在Windows控制台C应用程序中禁用echo?
我真的不想捕捉_getch(我仍然想要Ctrl-C)工作的角色.除了_getch之外,似乎只能禁用echo cmd而不是cygwin.
必须有一种方法来重定向管道或修改控制台设置.