首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Bash数组没有将元素添加到最后

Bash数组没有将元素添加到最后
EN

Unix & Linux用户
提问于 2020-06-25 09:52:53
回答 1查看 131关注 0票数 0
代码语言:javascript
运行
复制
root@kali-linux:~/Softwares/Softwares/Tools/dirsearch# array=()
root@kali-linux:~/Softwares/Softwares/Tools/dirsearch# for i in 1 2 3 4
> do
> array+=($i)
> done
root@kali-linux:~/Softwares/Softwares/Tools/dirsearch# echo $array
1
root@kali-linux:~/Softwares/Softwares/Tools/dirsearch# for i in 1 2 3 4; do array+=( $i ); done
root@kali-linux:~/Softwares/Softwares/Tools/dirsearch# echo $array
1
root@kali-linux:~/Softwares/Softwares/Tools/dirsearch# for i in 1 2 3 4; do array+=( $i ); done
root@kali-linux:~/Softwares/Softwares/Tools/dirsearch# for i in 1 2 3 4; do
> array=( "${array[@]}" "$i" )
> done
root@kali-linux:~/Softwares/Softwares/Tools/dirsearch# echo $array
1
root@kali-linux:~/Softwares/Softwares/Tools/dirsearch# 

如何向bash中的数组添加/移除元素?,我试着添加,就像在这个问题中所说的,但是它仍然不工作,并且打印1

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2020-06-25 09:57:25

您的循环很好(除了忘记引用$i),问题在echo $array中,它没有在bash中打印数组的所有元素。

bash复制了ksh的笨拙数组设计,而不是zshcshtcshrc.

在ksh中,$array${array[0]}的缩写(扩展到indice 0元素的内容,如果没有设置,则扩展为空字符串)。

要展开到数组的所有元素,您需要:

代码语言:javascript
运行
复制
$ printf ' - "%s"\n' "${array[@]}"
 - "1"
 - "2"
 - "3"
 - "4"

对于数组的第一个元素(它可能不是带有indice 0的元素,因为ksh/bash数组是稀疏的):

代码语言:javascript
运行
复制
$ printf '%s\n' "${array[@]:0:1}"
1

对于indice 0的元素(在您的示例中,该元素将与第一个元素相同):

代码语言:javascript
运行
复制
$ printf '%s\n' "$array"
1

或者:

代码语言:javascript
运行
复制
$ printf '%s\n' "${array[0]}"
1

要打印变量的定义,还可以使用typeset -p

代码语言:javascript
运行
复制
ksh93u+$ typeset -p array
typeset -a array=( 1 2 3 4 )
代码语言:javascript
运行
复制
bash-5.0$ typeset -p array
declare -a array=([0]="1" [1]="2" [2]="3" [3]="4")
bash-5.0$ unset 'array[0]'
bash-5.0$ typeset -p array
declare -a array=([1]="2" [2]="3" [3]="4")
bash-5.0$ printf '%s\n' "$array"

bash-5.0$ printf '%s\n' "${array[@]:0:1}"
2
票数 4
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/594986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档