如何扩展包含通配符的数组参数?

如何扩展包含通配符的数组参数?

我如何扩展大批有一个通配符争论?例如,我想列出以a3:- 声明a("a1" "a2" "a3*")不起作用但("a1" "a2" a3*)有效的所有文件(表达细绳?),但是有更好的方法吗?

#/usr/bin/env bash

touch a1 a2 a31 a32

# list files starting with a3

a=("a1" "a2" "a3*") # fails
a=("a1" "a2" a3*) # works

ls "${a[@]}"

rm a1 a2 a31 a32

答案1

在 Bash 中,你可以在同一个“单词”中组合不同的引号,甚至不带引号的字符串,所以我可能会写a=("a1" "a2" "a3"*).这样,例如,如果a最终被拉出为prefix=a,您可以简单地执行a=("${prefix}1" "${prefix}2" "${prefix}3"*)

相关内容