-1

当我想在传递给 shell 脚本的参数中查找特定关键字时,我有一个要求。如果该关键字存在,我不想显示该值。

我在下面尝试但它不起作用,也尝试使用 awk 但它会查找文件输入。请您帮忙:

#!/bin/ksh

i=0
for i in $@
do
    echo $i
    if index(toupper($i),"PASSWORD") -gt 0
    then
        print "****"
    fi
done

谢谢

4

1 回答 1

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
于 2012-08-03T19:12:00.030 回答