当我想在传递给 shell 脚本的参数中查找特定关键字时,我有一个要求。如果该关键字存在,我不想显示该值。
我在下面尝试但它不起作用,也尝试使用 awk 但它会查找文件输入。请您帮忙:
#!/bin/ksh
i=0
for i in $@
do
echo $i
if index(toupper($i),"PASSWORD") -gt 0
then
print "****"
fi
done
谢谢
此功能可能会满足您的要求。
将字符串转换为大写的简单方法是使用typeset -u
. 在这种情况下,我创建了一个副本$u
,所以我们仍然有原始的混合或小写值$w
function shield_keyword {
typeset -u upper;
typeset w;
for w in "$@";
do
upper=$w;
[[ $upper == *PASSWORD* ]] && echo "****" || echo "$w" "$upper";
done
}
测试:
$ shield_keyword fee fie PASS WORD PASSWORD:secret special
fee FEE
fie FIE
PASS PASS
WORD WORD
****
special SPECIAL