加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何将read命令设置为执行而无需在shell中按Enter键?

发布时间:2020-12-15 21:37:18 所属栏目:安全 来源:网络整理
导读:我使用下面的代码将用户角色的给定分配给变量G: read G 但是为了继续执行我的脚本,我需要按回车键. 是否有可能以某种方式将read命令设置为在收到stdin的一个字母后立即将进程显示到下一行? 解决方法 我以为dd也许可以做到这一点,所以我尝试了它并没有得到
我使用下面的代码将用户角色的给定分配给变量G:

read G

但是为了继续执行我的脚本,我需要按回车键.
是否有可能以某种方式将read命令设置为在收到stdin的一个字母后立即将进程显示到下一行?

解决方法

我以为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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读