[讨论]在shell里面,如何实现单击任意键退出
发表于 : 2007-06-04 18:44
刚学shell, 如何实现单击任意键退出啊?
有什么命令可以实现吗
???
有什么命令可以实现吗
???
read abciblicf 写了:read abc
恩,楼主需要的是任意键,而不是回车!iblicf 写了:我靠 你不会判断 abc = 回车啊
赞,但是楼主希望的是在shell中实现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
代码: 全选
stty -icanon -echo
stty icanon echo
写好,编译后!stufever 写了:赞,但是楼主希望的是在shell中实现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
恩,有一个stty命令可以控制终端的属性,但是根据LZ的要求应该是TCSANOW,也就是及时更新驱动程序,看了半天man也没找到。其它的倒是用命令很简单就能实现代码: 全选
stty -icanon -echo stty icanon echo
呵呵,这个“日”可以省掉。iblicf 写了:日,,read -n 1 行了吧,非要编程序 :)
代码: 全选
#/bin/bash
echo "please input a char to exit"
stty -echo
read -n 1 a
stty echo
exit 0
利用现有的东西我不知道!!bones7456 写了:为这个编译程序也太小题大做了点,呵呵.
呵呵,你的情况比较特殊了.wkt 写了:利用现有的东西我不知道!!bones7456 写了:为这个编译程序也太小题大做了点,呵呵.
而网上有人给出了mygetch
你说哪个容易?
一个你不知道,一个就在眼前.
当然mygetch了!
现在,我不特殊了!bones7456 写了:呵呵,你的情况比较特殊了.wkt 写了:利用现有的东西我不知道!!bones7456 写了:为这个编译程序也太小题大做了点,呵呵.
而网上有人给出了mygetch
你说哪个容易?
一个你不知道,一个就在眼前.
当然mygetch了!