如何跳过与bash中的模式匹配的目录

时间:2019-03-19 09:20:02

标签: bash

string="*test"
for dir in $ALIGN_DIR/*/; do 
   if [[ -d $dir && $dir == "$string" ]]; then
       continue
   fi
done

这不起作用,例如$ dir ='\ home \ something \ test'与$ string不匹配,因此不会被跳过。

1 个答案:

答案 0 :(得分:0)

您应该在支票中使用正则表达式。默认情况下,字符串的相等性不适用于通配符*

string=".*test"
for dir in $ALIGN_DIR/*/; do 
   if [[ -d $dir && $dir =~ "$string" ]]; then
       continue
   fi
done