在 tcsh shell 脚本中编码这个 perl 语句的正确方法是什么
foreach (@array) { if (/^(pam|pom)/) { dosomething(); } }
在 tcsh shell 脚本中编码这个 perl 语句的正确方法是什么
foreach (@array) { if (/^(pam|pom)/) { dosomething(); } }
这是一种方法:
#!/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