2013年7月15日 星期一

关于system("stty echo")和system("stty icanon")

看到以下程式因此有此一問...
system ("stty -echo");
print "Please enter your password: ";
chomp($p=<STDIN>);
system ("stty echo");
print "\n output\n"

http://tieba.baidu.com/p/1094350750
system 函数是linux系统的调用函数
system("stty -echo"); //这句代码实现的功能是在终端输入时在屏幕不显

system("stty echo"); 设置了不显是以后,调用scanf等io操作时在屏幕不显,加上这句,就又可以显示了!!!
參考文獻: http://www.cnblogs.com/alaska1131/articles/1663041.html
测试方法:
stty -echo;read;stty echo;read

read用法:
http://linux.vbird.org/linux_basic/0320bash.php#read
[root@www ~]# read [-pt] variable
選項與參數:
-p  :後面可以接提示字元!
-t  :後面可以接等待的『秒數!』這個比較有趣~不會一直等待使用者啦!

範例一:讓使用者由鍵盤輸入一內容,將該內容變成名為 atest 的變數
[root@www ~]# read atest
This is a test        <==此時游標會等待你輸入!請輸入左側文字看看
[root@www ~]# echo $atest
This is a test          <==你剛剛輸入的資料已經變成一個變數內容!

範例二:提示使用者 30 秒內輸入自己的大名,將該輸入字串作為名為 named 的變數內容
[root@www ~]# read -p "Please keyin your name: " -t 30 named
Please keyin your name: VBird Tsai   <==注意看,會有提示字元喔!
[root@www ~]# echo $named
VBird Tsai        <==輸入的資料又變成一個變數的內容了!


沒有留言:

張貼留言