-1

シェル スクリプトに渡される引数で特定のキーワードを探したい場合、要件があります。そのキーワードが存在する場合、値を表示したくありません。

以下で試しましたが、機能しません。また、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 に答える