我正在寻找tcl中的一种方法来暂停脚本(例如在一些带有"puts"的输出之后)并等待从用户按下的键,然后继续输出剩余的文本.
Hai*_* Vu 11
你只是gets用来从stdin读取:
proc pause {{message "Hit Enter to continue ==> "}} {
puts -nonewline $message
flush stdout
gets stdin
}
pause "Hurry, hit enter: "; # Sample usage 1
pause; # Sample usage 2, use default message
Run Code Online (Sandbox Code Playgroud)
感谢 Hai Vu 的回答,如果您使用的是类 Unix 系统 stty
proc anykey {{msg "Hit any key: "}} {
set stty_settings [exec stty -g]
exec stty raw -echo
puts -nonewline $msg
flush stdout
read stdin 1
exec stty $stty_settings
puts ""
}
puts 1
anykey
puts 2
Run Code Online (Sandbox Code Playgroud)
Tcl wiki 上详细讨论的链接:Reading a single character from the keyboard using Tcl