1. 程式人生 > >shell輸入內容時不顯示內容

shell輸入內容時不顯示內容

開發十年,就只剩下這套架構體系了! >>>   

簡介

大家都知道當我們ssh登入linux伺服器的時候輸入密碼密碼是不顯示在螢幕上的,同樣在我們寫shell指令碼的時候在獲取使用者密碼的時候,有時候也希望不顯示密碼,這個是怎麼做的呢

例項指令碼

#!/bin/bash
echo "請輸入密碼:"
stty -echo
read password
echo "密碼輸入完畢"
echo "你的密碼是" $password
stty echo

執行效果

[root[@localhost](https://my.oschina.net/u/570656) home]# ./test.sh
請輸入密碼:
密碼輸入完畢
你的密碼是 123

解釋

大家可以看到其實指令碼中就是stty -echostty echo發揮了作用

解釋下stty這個命令

這個命令是用來控制命令列相關設定的,用這個命令你可以做到

  • 禁止輸出大寫: stty iuclc
  • 可以輸出大寫: stty -iuclc
  • 禁止輸出小寫: stty olcuc
  • 可以輸出小寫: stty -olcuc

等等

詳細可以看

https://wangchujiang.com/linux-command/c/stty.html

還有一種方法

如果你是bash的話read命令加上-s引數也可以實現同樣的效果,不信那你可以拿下面的指令碼試試

#!/bin/bash
echo "請輸入密碼:"
read -s password
echo "你的密碼是" $password

歡迎關注Bboysoul的部落格www.bboy