当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 16 篇帖子 ]  前往页数 1, 2  下一页
作者 内容
1 楼 
 文章标题 : [讨论]在shell里面,如何实现单击任意键退出
帖子发表于 : 2007-06-04 18:44 

注册: 2007-05-30 10:38
帖子: 8
送出感谢: 0 次
接收感谢: 0 次
刚学shell, 如何实现单击任意键退出啊?

有什么命令可以实现吗

???


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-06-04 18:50 
头像

注册: 2007-01-15 17:15
帖子: 3766
送出感谢: 0 次
接收感谢: 0 次
read abc


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-06-04 20:57 

注册: 2007-05-30 10:38
帖子: 8
送出感谢: 0 次
接收感谢: 0 次
iblicf 写道:
read abc


read abc

是敲了回车,就退出

击其他键,不会退出啊???
有没有其他大方法呢??


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2007-06-05 15:15 
头像

注册: 2007-01-15 17:15
帖子: 3766
送出感谢: 0 次
接收感谢: 0 次
我靠 你不会判断 abc = 回车啊


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2007-06-05 16:10 

注册: 2006-09-07 22:51
帖子: 849
送出感谢: 0 次
接收感谢: 0 次
写一个:
#include <stdio.h>
#include <termios.h>
#include <unistd.h>

int mygetch( ) {
struct termios oldt,
newt;
int ch;
tcgetattr( STDIN_FILENO, &oldt );
newt = oldt;
newt.c_lflag &= ~( ICANON | ECHO );
tcsetattr( STDIN_FILENO, TCSANOW, &newt );
ch = getchar();
tcsetattr( STDIN_FILENO, TCSANOW, &oldt );
return ch;
}
int main()
{
mygetch();
return 0;
}

http://hi.baidu.com/wjq_qust/blog/item/ ... b49cc.html


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2007-06-05 16:52 

注册: 2007-03-11 17:48
帖子: 69
送出感谢: 0 次
接收感谢: 0 次
iblicf 写道:
我靠 你不会判断 abc = 回车啊

恩,楼主需要的是任意键,而不是回车!


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2007-06-05 17:39 

注册: 2007-03-11 17:48
帖子: 69
送出感谢: 0 次
接收感谢: 0 次
wkt 写道:
写一个:
#include <stdio.h>
#include <termios.h>
#include <unistd.h>

int mygetch( ) {
struct termios oldt,
newt;
int ch;
tcgetattr( STDIN_FILENO, &oldt );
newt = oldt;
newt.c_lflag &= ~( ICANON | ECHO );
tcsetattr( STDIN_FILENO, TCSANOW, &newt );
ch = getchar();
tcsetattr( STDIN_FILENO, TCSANOW, &oldt );
return ch;
}
int main()
{
mygetch();
return 0;
}

http://hi.baidu.com/wjq_qust/blog/item/ ... b49cc.html


赞,但是楼主希望的是在shell中实现
恩,有一个stty命令可以控制终端的属性,但是根据LZ的要求应该是TCSANOW,也就是及时更新驱动程序,看了半天man也没找到。其它的倒是用命令很简单就能实现
代码:
stty -icanon -echo
stty icanon echo


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2007-06-05 18:47 

注册: 2006-09-07 22:51
帖子: 849
送出感谢: 0 次
接收感谢: 0 次
stufever 写道:
wkt 写道:
写一个:
#include <stdio.h>
#include <termios.h>
#include <unistd.h>

int mygetch( ) {
struct termios oldt,
newt;
int ch;
tcgetattr( STDIN_FILENO, &oldt );
newt = oldt;
newt.c_lflag &= ~( ICANON | ECHO );
tcsetattr( STDIN_FILENO, TCSANOW, &newt );
ch = getchar();
tcsetattr( STDIN_FILENO, TCSANOW, &oldt );
return ch;
}
int main()
{
mygetch();
return 0;
}

http://hi.baidu.com/wjq_qust/blog/item/ ... b49cc.html


赞,但是楼主希望的是在shell中实现
恩,有一个stty命令可以控制终端的属性,但是根据LZ的要求应该是TCSANOW,也就是及时更新驱动程序,看了半天man也没找到。其它的倒是用命令很简单就能实现
代码:
stty -icanon -echo
stty icanon echo

写好,编译后!
不就是shell了吗!
shell需要命令!
没有就安装/自己写!


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2007-06-05 19:45 
头像

注册: 2007-01-15 17:15
帖子: 3766
送出感谢: 0 次
接收感谢: 0 次
日,,read -n 1 行了吧,非要编程序 :)


页首
 用户资料  
 
10 楼 
 文章标题 :
帖子发表于 : 2007-06-05 19:52 
头像

注册: 2006-04-12 20:05
帖子: 8495
地址: 杭州
送出感谢: 0 次
接收感谢: 8
为这个编译程序也太小题大做了点,呵呵.


_________________
关注我的blog: ε==3


页首
 用户资料  
 
11 楼 
 文章标题 :
帖子发表于 : 2007-06-05 20:28 

注册: 2007-03-11 17:48
帖子: 69
送出感谢: 0 次
接收感谢: 0 次
iblicf 写道:
日,,read -n 1 行了吧,非要编程序 :)

呵呵,这个“日”可以省掉。
代码:
#/bin/bash

echo "please input a char to exit"
stty -echo
read -n 1 a
stty echo
exit 0

我想这个应该可以解决楼主的问题了:)


页首
 用户资料  
 
12 楼 
 文章标题 :
帖子发表于 : 2007-06-05 21:14 

注册: 2006-09-07 22:51
帖子: 849
送出感谢: 0 次
接收感谢: 0 次
bones7456 写道:
为这个编译程序也太小题大做了点,呵呵.

利用现有的东西我不知道!!
而网上有人给出了mygetch
你说哪个容易?
一个你不知道,一个就在眼前.
当然mygetch了!


页首
 用户资料  
 
13 楼 
 文章标题 :
帖子发表于 : 2007-06-05 21:17 
头像

注册: 2006-04-12 20:05
帖子: 8495
地址: 杭州
送出感谢: 0 次
接收感谢: 8
wkt 写道:
bones7456 写道:
为这个编译程序也太小题大做了点,呵呵.

利用现有的东西我不知道!!
而网上有人给出了mygetch
你说哪个容易?
一个你不知道,一个就在眼前.
当然mygetch了!


呵呵,你的情况比较特殊了.


_________________
关注我的blog: ε==3


页首
 用户资料  
 
14 楼 
 文章标题 :
帖子发表于 : 2007-06-05 21:57 

注册: 2006-09-07 22:51
帖子: 849
送出感谢: 0 次
接收感谢: 0 次
bones7456 写道:
wkt 写道:
bones7456 写道:
为这个编译程序也太小题大做了点,呵呵.

利用现有的东西我不知道!!
而网上有人给出了mygetch
你说哪个容易?
一个你不知道,一个就在眼前.
当然mygetch了!


呵呵,你的情况比较特殊了.

现在,我不特殊了!
有了个待测的方法?


页首
 用户资料  
 
15 楼 
 文章标题 :
帖子发表于 : 2007-06-07 10:09 

注册: 2007-05-30 10:38
帖子: 8
送出感谢: 0 次
接收感谢: 0 次
好多高手~~~~
赞一个~

我都被感动了~


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 16 篇帖子 ]  前往页数 1, 2  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译