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

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
123下一頁
最近訪問板塊 發(fā)新帖
查看: 13308 | 回復: 22
打印 上一主題 下一主題

請教:如何把輸入的字符自動轉換成*?  關閉 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2003-06-08 21:50 |只看該作者 |倒序瀏覽
如:
please input your passwd:1234
我想做成:
please input your passwd:****
我知道可以用stty -echo來禁止回顯,那么如何把輸入的字符變成*呢?
用什么方法可以實現(xiàn)!?
謝謝~~~@_@

論壇徽章:
0
2 [報告]
發(fā)表于 2003-06-09 00:28 |只看該作者

請教:如何把輸入的字符自動轉換成*?

原帖由 "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"

復制代碼

論壇徽章:
0
3 [報告]
發(fā)表于 2003-06-09 00:48 |只看該作者

請教:如何把輸入的字符自動轉換成*?

謝謝您的指點

論壇徽章:
0
4 [報告]
發(fā)表于 2003-06-09 01:02 |只看該作者

請教:如何把輸入的字符自動轉換成*?

[quote]原帖由 "bjgirl"]謝謝您的指點[/quote 發(fā)表:
   

不要客氣。  

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

好在UNIX口令中一般也沒有空格。

論壇徽章:
0
5 [報告]
發(fā)表于 2003-06-09 01:12 |只看該作者

請教:如何把輸入的字符自動轉換成*?

謝謝!我基本有個思路啦~~
if [ x$ret =  x ]

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

論壇徽章:
0
6 [報告]
發(fā)表于 2003-06-09 01:17 |只看該作者

請教:如何把輸入的字符自動轉換成*?

原帖由 "bjgirl" 發(fā)表:

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

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

[  = "" ]  

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

論壇徽章:
0
7 [報告]
發(fā)表于 2003-06-09 01:23 |只看該作者

請教:如何把輸入的字符自動轉換成*?

我用的是紅帽8,KSH...有些問題!不麻煩您啦,我自己再慢慢消化一下吧~~,goodnight

論壇徽章:
0
8 [報告]
發(fā)表于 2003-06-09 01:24 |只看該作者

請教:如何把輸入的字符自動轉換成*?

再次感謝

論壇徽章:
0
9 [報告]
發(fā)表于 2003-06-09 01:27 |只看該作者

請教:如何把輸入的字符自動轉換成*?

原帖由 "紅袖添香" 發(fā)表:
  

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

哦,是我疏忽了,   寫成

[ x"$ret" = x ]

就解決了

謝謝 MM 提醒,

論壇徽章:
0
10 [報告]
發(fā)表于 2003-06-09 13:12 |只看該作者

請教:如何把輸入的字符自動轉換成*?

紅JJ,我在KSH上調試通過啦~~,但是有句我不明白,望指點

  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"
復制代碼

謝謝!
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP