0

tcsh シェル スクリプトでこの perl ステートメントをコーディングする正しい方法は何ですか?

foreach (@array) { if (/^(pam|pom)/) { dosomething(); } }

4

1 に答える 1

2

1 つの方法を次に示します。

#!/bin/tcsh -f

set array = ( foo pam bar pom baz xpam pamx )
alias dosomething echo

foreach elem ($array:q)
    if ($elem:q =~ {pam,pom}*) then
        dosomething $elem:q
    endif
end

演算子の右側の式=~はファイル マッチング パターンであり、正規表現ではないことに注意してください。したがって、このソリューションはすべてのケースに一般化されるわけではありません。正規表現の一致が必要な場合は、次のexprコマンドを使用できます。

expr STRING : REGEXP

または、同等に:

expr match STRING REGEXP
于 2011-08-23T02:46:49.793 に答える