小编JC2*_*234的帖子

Bash - 创建一个包含通配符元素的数组以进行匹配

我想创建一个数组,如下所示,以检查输出文件名是否与数组中的模式匹配。

declare -a arr=('class*_1n_*000000.txt','class*_1n_*010000.txt','class*_2n_*010000.txt','class*_2n_*012000.txt','class*_3n_*235000.txt')

if [[ "${arr[*]}"==$output_filename ]]; then
   echo $output_filename exist in arr
   #do something...
else
   echo $output_filename not exist in arr
   #do something...
fi
Run Code Online (Sandbox Code Playgroud)

我尝试过以下3种情况,评论将是我的预期结果

output_filename='class_2n_20180922012000.txt' #exist
output_filename='classA_2n_20180923012000.txt' #exist
output_filename='classA_4n_20180923012000.txt' #not exist
Run Code Online (Sandbox Code Playgroud)

但三种情况均存在返回。

我怎么解决这个问题?

任何帮助将不胜感激 :)

syntax bash sh

2
推荐指数
1
解决办法
3192
查看次数

标签 统计

bash ×1

sh ×1

syntax ×1