0

在 tcsh shell 脚本中编码这个 perl 语句的正确方法是什么

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

4

1 回答 1

2

这是一种方法:

#!/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 回答