在ksh脚本中使用字符串函数

时间:2012-08-03 18:24:41

标签: string function shell ksh

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

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

#!/bin/ksh

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

由于

1 个答案:

答案 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