2017-07-06 74 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点击,谢谢:)我猜唯一的办法就是通过一个函数来做。 –