亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 請教:如何把輸入的字符自動轉(zhuǎn)換成*? [打印本頁]

作者: bjgirl    時間: 2003-06-08 21:50
標(biāo)題: 請教:如何把輸入的字符自動轉(zhuǎn)換成*?
如:
please input your passwd:1234
我想做成:
please input your passwd:****
我知道可以用stty -echo來禁止回顯,那么如何把輸入的字符變成*呢?
用什么方法可以實現(xiàn)!?
謝謝~~~@_@
作者: 紅袖添香    時間: 2003-06-09 00:28
標(biāo)題: 請教:如何把輸入的字符自動轉(zhuǎn)換成*?
原帖由 "bjgirl" 發(fā)表:
如:
please input your passwd:1234
...


  1. #!/bin/sh

  2. getchar() {
  3.     stty cbreak -echo
  4.     dd if=/dev/tty bs=1 count=1 2> /dev/null
  5.     stty -cbreak echo
  6. }

  7. printf "Please input your passwd: "

  8. while : ; do
  9.     ret=`getchar`
  10.     if [ x$ret =  x ]; then
  11.         echo
  12.         break
  13.     fi
  14.     str="$str$ret"
  15.     printf "*"
  16. done

  17. echo "Your password is: $str"

復(fù)制代碼

作者: bjgirl    時間: 2003-06-09 00:48
標(biāo)題: 請教:如何把輸入的字符自動轉(zhuǎn)換成*?
謝謝您的指點
作者: 紅袖添香    時間: 2003-06-09 01:02
標(biāo)題: 請教:如何把輸入的字符自動轉(zhuǎn)換成*?
[quote]原帖由 "bjgirl"]謝謝您的指點[/quote 發(fā)表:
   

不要客氣。  

不過還有個缺點,就是上面的代碼對“回車”和“空格”都認(rèn)為口令結(jié)束,可以用 C 的 getchar() 來處理就不會有這個問題。

好在UNIX口令中一般也沒有空格。
作者: bjgirl    時間: 2003-06-09 01:12
標(biāo)題: 請教:如何把輸入的字符自動轉(zhuǎn)換成*?
謝謝!我基本有個思路啦~~
if [ x$ret =  x ]

請問JJ,這句是不是有問題???
作者: 紅袖添香    時間: 2003-06-09 01:17
標(biāo)題: 請教:如何把輸入的字符自動轉(zhuǎn)換成*?
原帖由 "bjgirl" 發(fā)表:

請問JJ,這句是不是有問題???
   

因為 $ret 有可能為空,產(chǎn)生這樣的錯誤,

[  = "" ]  

所以在等號兩邊都加上相同的字符,以防止這樣的錯誤
作者: bjgirl    時間: 2003-06-09 01:23
標(biāo)題: 請教:如何把輸入的字符自動轉(zhuǎn)換成*?
我用的是紅帽8,KSH...有些問題!不麻煩您啦,我自己再慢慢消化一下吧~~,goodnight
作者: bjgirl    時間: 2003-06-09 01:24
標(biāo)題: 請教:如何把輸入的字符自動轉(zhuǎn)換成*?
再次感謝
作者: 紅袖添香    時間: 2003-06-09 01:27
標(biāo)題: 請教:如何把輸入的字符自動轉(zhuǎn)換成*?
原帖由 "紅袖添香" 發(fā)表:
  

所以在等號兩邊都加上相同的字符,以防止這樣的錯誤
   

哦,是我疏忽了,   寫成

[ x"$ret" = x ]

就解決了

謝謝 MM 提醒,
作者: bjgirl    時間: 2003-06-09 13:12
標(biāo)題: 請教:如何把輸入的字符自動轉(zhuǎn)換成*?
紅JJ,我在KSH上調(diào)試通過啦~~,但是有句我不明白,望指點

  1. #!/bin/ksh
  2. function getchar {
  3. stty cbreak -echo
  4. dd if=/dev/tty bs=1 count=1 2> /dev/null
  5. stty -cbreak echo
  6. }
  7. print -n "Please input your passwd: "
  8. while
  9. do
  10. ret=$(getchar)
  11. if [[ -z $ret ]]; then echo; break; fi ;
  12. str=$str$ret                           //這句麻煩您給解釋解釋
  13. print "*"
  14. done
  15. echo "Your password: $str"
復(fù)制代碼

謝謝!
作者: nkliyong    時間: 2003-06-09 14:42
標(biāo)題: 請教:如何把輸入的字符自動轉(zhuǎn)換成*?
程序是一個一個字符讀入passwd的,
這句話把他們再平成完整的passwd.
作者: bjgirl    時間: 2003-06-09 15:28
標(biāo)題: 請教:如何把輸入的字符自動轉(zhuǎn)換成*?
謝謝~~~
作者: 紅袖添香    時間: 2003-06-09 19:10
標(biāo)題: 請教:如何把輸入的字符自動轉(zhuǎn)換成*?
原帖由 "nmgzw" 發(fā)表:
   
不客氣
   

小鬼,好酒不見了撒!


作者: 邵林寺    時間: 2004-06-02 10:56
標(biāo)題: 請教:如何把輸入的字符自動轉(zhuǎn)換成*?
可是還是不能按鍵就響應(yīng)!
我想按一個鍵就顯示一個*怎么做啊?bjgirl幫幫忙啊。
我用的是SCO unix 5.0.7
作者: Macolex    時間: 2004-12-30 15:06
標(biāo)題: 請教:如何把輸入的字符自動轉(zhuǎn)換成*?
好貼

又學(xué)到一招
作者: shaoping0330    時間: 2004-12-30 15:59
標(biāo)題: 請教:如何把輸入的字符自動轉(zhuǎn)換成*?
鋼鐵 就是這樣練成的!
作者: fr21cn    時間: 2005-07-06 16:38
標(biāo)題: 請教:如何把輸入的字符自動轉(zhuǎn)換成*?
還有一點小問題,輸錯密碼了,好像不支持退格鍵。
作者: pzhmsh    時間: 2005-08-23 15:14
標(biāo)題: 請教:如何把輸入的字符自動轉(zhuǎn)換成*?
密碼迭加
作者: 寂寞烈火    時間: 2009-07-01 13:02


[ 本帖最后由 寂寞烈火 于 2009-7-1 13:04 編輯 ]
作者: r2007    時間: 2009-07-01 13:33
原帖由 寂寞烈火 于 2009-7-1 13:02 發(fā)表

時間真TMD快
作者: godmanager    時間: 2009-07-24 11:58
學(xué)習(xí)到了...
  留貼..
作者: ailms    時間: 2009-07-24 13:00
汗,03年的帖子,誰翻出來的
作者: 小木蟲子    時間: 2009-08-18 13:55
原帖由 bjgirl 于 2003-6-8 21:50 發(fā)表
如:
please input your passwd:1234
我想做成:
please input your passwd:****
我知道可以用stty -echo來禁止回顯,那么如何把輸入的字符變成*呢?
用什么方法可以實現(xiàn)!?
謝謝~~~@_@



[root@test ~]# more test
#!/bin/bash
read -s -p "please input your passwd: " pwd
echo -e "\n"
echo "Is your passwd really $pwd?"

[root@test ~]#
[root@test ~]#
[root@test ~]# ./test
please input your passwd:

Is your passwd really 1234?
[root@test ~]#




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2