在Bash中将默认数组写入变量

Modified on: Sat, 30 Jun 2018 07:37:30 +0800

我在期待

excludes="${excludes:-( ${default_excludes[@]} )}"

如果$excludes为空,则为数组。不幸的是,:-之后的东西被认为是一个字符串。我是否错过了一些语法扭曲,或者我是否必须使用笨重的

if [ -z "${excludes:-}" ]
then
    excludes=( "${default_excludes[@]}" )
fi

作者:l0b0

最佳答案

您可以使用以下语法从另一个数组构造数组:

arr1=( "${arr2[@]}" )

可以将其翻译为此默认值语法:

arr1=("${arr1[@]:-${arr2[@]}}")

我测试了一些边缘情况,比如数组成员中有空格或换行符,它似乎正确处理它们。

作者:GnP

相关问答

添加新评论