1 回答
TA贡献1802条经验 获得超5个赞
go generate generate.go
将forkmain.go
使用 exec.Command
,go generate
没有设置stdin
for main.go
,所以main.go
无法读取键盘输入os.Stdin
。
另一种方法是直接从/dev/tty
(unix) 或 System API(win) 读取键盘事件:
package main
import (
"fmt"
"log"
"github.com/eiannone/keyboard"
)
func main() {
if err := keyboard.Open(); err != nil {
panic(err)
}
defer func() {
_ = keyboard.Close()
}()
for isFileOk := checkFile(); !isFileOk; {
log.Println("File requires manual update.")
log.Println("Hit [RETURN] when resolved.")
char, key, err := keyboard.GetKey()
if err != nil {
panic(err)
}
fmt.Println(char, key, err)
if key == keyboard.KeyEsc {
return
}
}
}
func checkFile() bool {
return false
}
- 1 回答
- 0 关注
- 95 浏览
添加回答
举报