我试图将参数列表("$@"
)中的内容(不包括$1
以及以破折号开头的任何值)附加到bash中的数组。
我的当前代码如下,但无法正常运行:
BuildTypeList=("armv7" "armv6")
BuildTypeLen=${#BuildTypeList[*]}
while [ "$2" != "-*" -a "$#" -gt 0 ]; do
BuildTypeList["$BuildTypeLen"] = "$2"
BuildTypeLen=${#BuildTypeList[*]}
shift
done
我的目的是在运行时将内容添加到
BuildTypeList
中,而不是将其内容静态定义为源的一部分。 最佳答案
仅遍历所有参数,然后有选择地将它们附加到列表中,会更简单。
BuildTypeList=("armv7" "armv6")
first_arg=$1
shift;
for arg in "$@"; do
[[ $arg != -* ]] && BuildTypeList+=( "$arg" )
done
# If you really need to make sure all the elements
# are shifted out of $@
shift $#
关于arrays - 在bash中将argv条目追加到数组(动态填充数组),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12138390/