向bash数组添加元素



我一直在尝试为我的一个项目编写一个非常基本的通用bash选项解析器。想法如下:

  • 我提供了一个命令行参数列表,其中一些是选项
  • 我想将选项提取到一个单独的数组中
  • 我将得到两个数组:
    • 一个参数数组
    • 一个选项阵列

注意:我不关心可选选项和带参数的选项。就我而言,所有选项都是开关

这是我现在的代码:

parse() {
options=()
arguments=()
for arg
do
if [[ $arg = -* ]]
then
options+=("$arg")
else
arguments+=("$arg")
fi
done
echo $options
echo $arguments
}
# $ parse --one --two -v "FOO" "BAR"
# => --one
# => FOO

正如您在输出中看到的那样,问题是只有第一个选项和第一个参数存储在数组中。

请问我做错了什么?

解析和存储是可以的,输出是错误的:您只打印数组的第一个元素。

参见man bash中的"数组"以了解正确的语法:

echo "${options[@]}"
echo "${arguments[@]}"

相关内容

  • 没有找到相关文章

最新更新