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

String 在ksh脚本中使用字符串函数,string,function,shell,ksh,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 谢谢此函数可能会满足您的要求 将字符串转换为大写的简单方法是 使用排版-u。

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

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

#!/bin/ksh

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

谢谢

此函数可能会满足您的要求

将字符串转换为大写的简单方法是 使用
排版-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

我确实想知道为什么您会试图屏蔽命令行上以明文指定的字符串。你应该考虑他们已经公开的知识。