centos中的数组

数组:
存储多个元素的连续的内存空间,相当于多个变量的集合
数组索引:
数组的默认索引从零开始,用户可以自定义索引
数组声明:

        declare -a 数组名

数组查看:

        declare -a  

数组赋值:

        数组名=(关键字1 关键字2) 中间以空格隔开
        数组名[索引号]="关键字"
        数组名=([索引号]="关键字" [索引号]="关键字")   中间以空格隔开

数组应用:

        ${数组名[*]} 应用数组的所有变零
        $(数组名[索引号])  应用数组的指定变量

数组删除:

        unset 数组名       删除整个数组
        unset 数组名[索引号]     删除指定数组

数组切片:

    ${数组名[*]:n1 :n2}   隔n1个变量取出n2个变量

数组追加:

        数组名[${#数组名[*]}]=变量      

实例:
1:

[root@localhost app]# text=({1..5})  #数组的声明(默认declare -a)
[root@localhost app]# echo ${text[*]}  #数组打印
1 2 3 4 5
[root@localhost app]# declare -a  #查看所有数组 (可以用grep过滤指定数组)
declare -a BASH_ARGC='()'
declare -a BASH_ARGV='()'
declare -a BASH_LINENO='()'
declare -ar BASH_REMATCH='([0]="\$nam" [1]="\$" [2]="nam")'
declare -a BASH_SOURCE='()'
declare -ar BASH_VERSINFO='([0]="4" [1]="2" [2]="46" [3]="2" [4]="release" [5]="x86_64-redhat-linux-gnu")'
declare -a DIRSTACK='()'
declare -a FUNCNAME='()'
declare -a GROUPS='()'
declare -a PIPESTATUS='([0]="0")'
declare -a name='()'
declare -a nmae='([0]="1" [1]="2" [2]="3")'
declare -a text='([0]="1" [1]="2" [2]="3" [3]="4" [4]="5")'
[root@localhost app]# unset text  #数组删除
[root@localhost app]# declare -a   #再次查看
declare -a BASH_ARGC='()'
declare -a BASH_ARGV='()'
declare -a BASH_LINENO='()'
declare -ar BASH_REMATCH='([0]="\$nam" [1]="\$" [2]="nam")'
declare -a BASH_SOURCE='()'
declare -ar BASH_VERSINFO='([0]="4" [1]="2" [2]="46" [3]="2" [4]="release" [5]="x86_64-redhat-linux-gnu")'
declare -a DIRSTACK='()'
declare -a FUNCNAME='()'
declare -a GROUPS='()'
declare -a PIPESTATUS='([0]="0")'
declare -a name='()'
declare -a nmae='([0]="1" [1]="2" [2]="3")'

2:

[root@localhost app]# text=([2]=4 [4]=7)   #数组稀疏赋值
[root@localhost app]# declare -a
declare -a BASH_ARGC='()'
declare -a BASH_ARGV='()'
declare -a BASH_LINENO='()'
declare -ar BASH_REMATCH='([0]="\$nam" [1]="\$" [2]="nam")'
declare -a BASH_SOURCE='()'
declare -ar BASH_VERSINFO='([0]="4" [1]="2" [2]="46" [3]="2" [4]="release" [5]="x86_64-redhat-linux-gnu")'
declare -a DIRSTACK='()'
declare -a FUNCNAME='()'
declare -a GROUPS='()'
declare -a PIPESTATUS='([0]="0")'
declare -a name='()'
declare -a nmae='([0]="1" [1]="2" [2]="3")'
declare -a text='([2]="4" [4]="7")'

3:

[root@localhost app]# text=({1..3})
[root@localhost app]# echo ${text[*]} #原先数组
1 2 3
[root@localhost app]# text[${#text[*]}]=4 #数组追加
[root@localhost app]# echo ${text[*]}
1 2 3 4

4:数组切片的应用
.如下所示,实现转置矩阵matrix.sh
1 2 3 1 4 7
4 5 6 ===> 2 5 8
7 8 9 3 6 9

#!/bin/bash
f=({1..9})
#打印源矩阵
for ((i=0;i<9;i+=3));do
echo ${f[*]:$i :3}
done
echo "---------->>"
# 矩阵转变
for n in {0..2};do
 for ((i=0;i<9;i+=3));do
echo -n "${f[*]:$i+$n :1} "
done
echo
done
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值