下面这段用于构造子数组的代码给出了输出 -
sdf,sdf,sdf,sdf
sdf,sdf,sdf,sdf
Run Code Online (Sandbox Code Playgroud)
但预期的输出应该是
sdf,sdf,sdf,sdf
sdf,sdf
Run Code Online (Sandbox Code Playgroud)
代码有什么问题?
#!/bin/bash
ary=("sdf","sdf","sdf","sdf")
team_one=( "${ary[@]:0:2}" )
echo "${ary[@]}"
echo "${team_one[@]}"
Run Code Online (Sandbox Code Playgroud)
首先,您不需要使用逗号。Bash 中的数组是用空格分隔的;不像某些语言(例如 javascript)那样以逗号分隔。
所以你的代码应该是这样的:
arr=("a" "b" "c" "d")
team_one=("${arr[@]:0:2}")
echo "${arr[@]}"
# a b c d
echo "${team_one[@]}"
# a b
Run Code Online (Sandbox Code Playgroud)
您的代码的问题在于,"sdf","sdf","sdf","sdf"在数组中被视为一个大的长字符串,而不是字符串的四个实例sdf。
| 归档时间: |
|
| 查看次数: |
8276 次 |
| 最近记录: |