在tcsh shell脚本中编写这个perl语句的正确方法是什么
foreach(@array){if(/ ^(pam | pom)/){dosomething(); } }
答案 0 :(得分: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