等待用户按键,不必回车

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
c\nc
帖子: 231
注册时间: 2007-12-25 12:51

等待用户按键,不必回车

#1

帖子 c\nc » 2009-07-30 13:03

代码: 全选

getchar()
{
	local stty=$(stty -g)
	stty -echo raw || return 1
	eval read $1 < <(dd if=/dev/tty bs=1 count=1 2> /dev/null)
	stty -raw echo $stty
	echo ${!1}
}
用法:

代码: 全选

$ getchar X && echo $X
y
y
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 等待用户按键,不必回车

#2

帖子 eexpress » 2009-07-30 13:13

记得不需要这复杂的。
● 鸣学
头像
c\nc
帖子: 231
注册时间: 2007-12-25 12:51

Re: 等待用户按键,不必回车

#3

帖子 c\nc » 2009-07-30 13:35

eexpress 写了:记得不需要这复杂的。
快想 :em04
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 等待用户按键,不必回车

#4

帖子 eexpress » 2009-07-30 13:46

代码: 全选

$ch=$scr->getch();
switch($ch){
case [a..z]	
:em05 就找到这个。

因为平时没这需要。以前搞过bash的。
● 鸣学
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

Re: 等待用户按键,不必回车

#5

帖子 BigSnake.NET » 2009-07-30 13:52

eexpress 写了:

代码: 全选

$ch=$scr->getch();
switch($ch){
case [a..z]	
:em05 就找到这个。

因为平时没这需要。以前搞过bash的。
人家说 bash 啊,你 perl 瞎掺和什么
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 等待用户按键,不必回车

#6

帖子 eexpress » 2009-07-30 13:53

球猫,不解语意的。。。我都说明了。
● 鸣学
billbear
帖子: 3681
注册时间: 2008-05-03 23:42

Re: 等待用户按键,不必回车

#7

帖子 billbear » 2009-07-30 14:07

read -n 1 x && echo $x
不回显:
read -s -n 1 x && echo $x
头像
c\nc
帖子: 231
注册时间: 2007-12-25 12:51

Re: 等待用户按键,不必回车

#8

帖子 c\nc » 2009-07-30 15:05

楼上的厉害,我这里的 man read 只有一个 -r 选项……
头像
cnkilior
论坛版主
帖子: 4984
注册时间: 2007-08-05 17:40

Re: 等待用户按键,不必回车

#9

帖子 cnkilior » 2009-07-30 16:05

EE即将被BS。哈哈!

-----
这段代码在:viewtopic.php?f=21&t=137510&start=0
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 等待用户按键,不必回车

#10

帖子 eexpress » 2009-07-30 16:12

胡说吧。bs啥。以前用过的。现在都pl了。怎么可能还用这落后的语法。
:em04
● 鸣学
头像
ibear
帖子: 787
注册时间: 2006-10-19 8:43
来自: 长江口

Re: 等待用户按键,不必回车

#11

帖子 ibear » 2009-07-30 16:24

raw_input()
好好地做一个碌碌无为的人
billbear
帖子: 3681
注册时间: 2008-05-03 23:42

Re: 等待用户按键,不必回车

#12

帖子 billbear » 2009-07-30 16:39

c\nc 写了:我这里的 man read 只有一个 -r 选项……
man bash
http://linux.die.net/man/1/bash
头像
cnkilior
论坛版主
帖子: 4984
注册时间: 2007-08-05 17:40

Re: 等待用户按键,不必回车

#13

帖子 cnkilior » 2009-08-01 16:28

die.net的手册开起来不爽,还是man.cx比较好看一些!
回复