我使用下面的代码将用户角色的给定分配给变量G:
read G
然而,为了继续执行我的脚本,我需要按回车键。 是否有可能以某种方式将read命令设置为在收到stdin的一个字母后立即显示进程到下一行?
答案 0 :(得分:5)
如果你正在使用Bash:
read -n1 G
您的系统默认配置为使用短划线,短划线不支持此功能,因此您还需要更改脚本的第一行以指定您希望使用bash:
#!/bin/bash
答案 1 :(得分:2)
我认为dd
可能会这样做,所以我尝试了它并没有得到任何结果。但是,Google为我找到了this,我在这里进行了调整:
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)