【问题标题】:Using string functions in ksh script在 ksh 脚本中使用字符串函数
【发布时间】:2012-08-01 19:51:46
【问题描述】:

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

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

#!/bin/ksh

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

谢谢

【问题讨论】:

  • 我确实想知道为什么您会尝试屏蔽在命令行上以明文形式指定的字符串。您应该认为它们已经为公众所知。

标签: string function shell ksh


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-28
    • 1970-01-01
    • 2012-01-08
    • 1970-01-01
    相关资源
    最近更新 更多