当我想在传递给shell脚本的参数中查找特定关键字时,我有一个要求。如果该关键字存在,我不想显示该值。
我试过下面但是它不起作用,也尝试使用awk但它查找文件输入。请你帮忙:
#!/bin/ksh
i=0
for i in $@
do
echo $i
if index(toupper($i),"PASSWORD") -gt 0
then
print "****"
fi
done
由于
答案 0 :(得分:1)
此功能可能会按您的要求执行。
将字符串转换为大写的简单方法是
使用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