2017-07-06 63 views
1

我想提示用戶輸入一個祕密值(例如:密碼變量,信用卡,某個密鑰/標記)並希望看看是否有方法顯示該變量值的最後N個(可以說是4個字符)。填充並只顯示屏蔽/密碼/密碼變量的值的最後N個字符

例: 輸入您的信用卡號碼:1234567898765432

我可以使用包裝爲前stty -echo/echo隱藏哪些用戶將進入或使用read -s variable,它會隱藏值,但我想是顯示如果我說$ echo $mySecretVariable(不確定是否真的需要寫一個函數),那麼這個變量只會返回N(例如:4)個字符,即 ,那麼它會回顯該值:************5432或您的令牌鍵值last4以*******************C5fx結尾類似於所有字符將被填充*並且只顯示最後一個N的東西。

回答

2

您可以使用此bash函數用於掩蓋一切,但最後4個字符:

mask() { 
    local r="${1?needs an argument}" 
    if ((${#r} > 4)); then 
     r="${r:0: -4}" 
     echo "${r//?/*}${1: -4}" 
    else 
     echo "$r" 
    fi 
} 

然後用它作爲:

mask 1234567898765432 
************5432 

mask 123 
123 

mask 123456 
**3456 
+1

我不知道爲什麼你有430K點擊,謝謝:)我猜唯一的辦法就是通過一個函數來做。 –