Bash 中的数组拆分

Bash 中的数组拆分

以下构造子数组的代码给出输出 -

sdf,sdf,sdf,sdf
sdf,sdf,sdf,sdf

但预期的输出应该是

sdf,sdf,sdf,sdf
sdf,sdf

代码有什么问题?

 #!/bin/bash

    ary=("sdf","sdf","sdf","sdf")
    team_one=( "${ary[@]:0:2}" )
    echo "${ary[@]}"
    echo "${team_one[@]}"

答案1

首先,您不需要使用逗号。Bash 中的数组以空格分隔;而不是像某些语言(例如 javascript)那样以逗号分隔。

所以你的代码看起来应该是这样的:

arr=("a" "b" "c" "d")
team_one=("${arr[@]:0:2}")
echo "${arr[@]}"
# a b c d
echo "${team_one[@]}"
# a b

您的代码存在的问题在于,"sdf","sdf","sdf","sdf"数组被视为一个很大的长字符串,而不是字符串的四个实例sdf

相关内容