Answers:
只要让它在数组声明的右侧扩展即可:
list=(../smth*/) # grab the list
echo "${#list[@]}" # print array length
echo "${list[@]}" # print array elements
for file in "${list[@]}"; do echo "$file"; done # loop over the array
请注意,nullglob
需要设置shell选项。
默认情况下未设置。
万一(或多个glob中的一个)与任何名称都不匹配的情况,它可以防止错误。
在设置bash
与
shopt -s nullglob
或zsh
与
setopt nullglob
unsetopt
以及用于的相同参数setopt
。
无需过于复杂:
echo your/stuff*
TEST=$(echo your/stuff*) && eval \"$TEST\"
将输出:your/stuff*: No such file or directory
TEST
变量评估为字符串,包括但*
不进行扩展。
*
。