【发布时间】:2012-08-21 17:29:57
【问题描述】:
我正在尝试将参数列表 ("$@") 中的内容(不包括 $1 以及任何以破折号开头的值)附加到 bash 中的数组。
我当前的代码如下,但运行不正确:
BuildTypeList=("armv7" "armv6")
BuildTypeLen=${#BuildTypeList[*]}
while [ "$2" != "-*" -a "$#" -gt 0 ]; do
BuildTypeList["$BuildTypeLen"] = "$2"
BuildTypeLen=${#BuildTypeList[*]}
shift
done
我的意图是在运行时向BuildTypeList 添加内容,而不是将其内容静态定义为源的一部分。
【问题讨论】:
-
顺便说一句,原始代码不起作用的最直接原因是分配中
=符号周围的空格。foo=bar是 shell 中的赋值;foo = bar不是。 -
(另外,
[ foo != bar ]不是 glob 表达式;为此需要 bash 扩展名[[ ]])。