我使用下面的代码将用户字符给定给variablesG:
read G
但是为了继续执行我的脚本,我需要按回车键。 是否有可能以某种方式设置读取命令,使其在接收到标准input的一个字母后立即显示进程到下一行?
我以为dd
也许可以做到这一点,所以我试了一下,没有得到任何地方。 然而,谷歌为我找到了这个 ,我在这里调整它:
readOne () { local oldstty oldstty=$(stty -g) stty -icanon -echo min 1 time 0 dd bs=1 count=1 2>/dev/null stty "$oldstty" }
在脚本开始处定义这个函数一次,然后你可以像这样使用它:
char=$(readOne) # get the character echo $char # print the character (or you can do something else with it)
如果你使用Bash:
read -n1 G
您的系统默认配置为使用破折号,破折号不支持此功能,因此您还需要更改脚本的第一行以指定您希望使用bash:
#!/bin/bash