LINUX88 变量:命令定义;普通数组定义(复);declare -i /-x

问题

bash 复制代码
[code@samba ~]$ array3=(`ls axel-2.4`)
[code@samba ~]$ echo $array3
API
[code@samba ~]$ ls axel-2.4
API             CHANGES    conn.o   gui                README    tcp.o
axel            conf.c     COPYING  http.c             ru.mo     text.c
axel.1          conf.h     CREDITS  http.h             ru.po     text.o
axel.c          config.h   de.mo    http.o             search.c  zh_CN.mo
axel.h          configure  de.po    Makefile           search.h  zh_CN.po
axel.o          conf.o     ftp.c    Makefile.settings  search.o
axelrc.example  conn.c     ftp.h    nl.mo              tcp.c
axel_zh_CN.1    conn.h     ftp.o    nl.po              tcp.h
bash 复制代码
[code@samba ~]$ echo $array3
API
[code@samba ~]$ ls axel-2.4
API             CHANGES    conn.o   gui                README    tcp.o
axel            conf.c     COPYING  http.c             ru.mo     text.c
axel.1          conf.h     CREDITS  http.h             ru.po     text.o
axel.c          config.h   de.mo    http.o             search.c  zh_CN.mo
axel.h          configure  de.po    Makefile           search.h  zh_CN.po
axel.o          conf.o     ftp.c    Makefile.settings  search.o
axelrc.example  conn.c     ftp.h    nl.mo              tcp.c
axel_zh_CN.1    conn.h     ftp.o    nl.po              tcp.h
[code@samba ~]$ echo $array3[@]
API[@]
[code@samba ~]$ echo "${array3[@]}"
API axel axel.1 axel.c axel.h axel.o axelrc.example axel_zh_CN.1 CHANGES conf.c conf.h config.h configure conf.o conn.c conn.h conn.o COPYING CREDITS de.mo de.po ftp.c ftp.h ftp.o gui http.c http.h http.o Makefile Makefile.settings nl.mo nl.po README ru.mo ru.po search.c search.h search.o tcp.c tcp.h tcp.o text.c text.o zh_CN.mo zh_CN.po

() {} []

变量

有类型变量

declare [选项] a=1

[选项] -i

declare -i a=1

变量整数

bash 复制代码
[code@samba ~]$ echo $name
3.10.0-1160.el7.x86_64
[code@samba ~]$ a=10
[code@samba ~]$ b=20
[code@samba ~]$ echo $a+$b
10+20
[code@samba ~]$ declare -i a=10
[code@samba ~]$ declare -i b=20
[code@samba ~]$ declare -i c=$a+$b
[code@samba ~]$ echo $c
30

-x

定义环境变量

declare -x b=1

env |grep b

bash 复制代码
[code@samba ~]$ AAA=hello
[code@samba ~]$ export AAA
[code@samba ~]$ env|grep AAA
AAA=hello
[code@samba ~]$ declare -x BBB=hello
[code@samba ~]$ env|grep BBB
BBB=hello

数组

定义

array[0]=a
a=array3[a,bm,c,s,s]
a=arrayd{ls ./}
a=array4[var1 var3 var4 var5]

array3=(a,bn,s,cs)

array4=( ls ./ )

array5=(var1 var3 var4)

array6=(a v s d [10]=linux)

bash 复制代码
[code@samba ~]$ array[0]=v1
[code@samba ~]$ array[1]=v2
[code@samba ~]$ array[3]=v3
[code@samba ~]$ array=(var1 var2 var3 var4)
[code@samba ~]$ array1=(`cat /etc/passwd`)
[code@samba ~]$ echo $array1
root:x:0:0:root:/root:/bin/bash
[code@samba ~]$ array2=(`ls /root`)
ls: 无法打开目录/root: 权限不够
[code@samba ~]$ ls
1.sh                    axel-2.4.tar.gz       inotify-tools-3.13.tar.gz  视频  桌面
apr-1.5.2.tar.bz2       bash_var.sh           mysql-5.6.31.tar.gz        图片
apr-util-1.5.4.tar.bz2  httpd-2.4.37.tar.bz2  nohup.out                  文档
axel-1.0a.tar.gz        inotify.sh            公共                       下载
axel-2.4                inotify-tools-3.13    模板                       音乐
[code@samba ~]$ mkdir 1
[code@samba ~]$ ls
1                       axel-2.4              inotify-tools-3.13         模板  音乐
1.sh                    axel-2.4.tar.gz       inotify-tools-3.13.tar.gz  视频  桌面
apr-1.5.2.tar.bz2       bash_var.sh           mysql-5.6.31.tar.gz        图片
apr-util-1.5.4.tar.bz2  httpd-2.4.37.tar.bz2  nohup.out                  文档
axel-1.0a.tar.gz        inotify.sh            公共                       下载
[code@samba ~]$ array2=(`ls /1`)
ls: 无法访问/1: 没有那个文件或目录
[code@samba ~]$ array2=(`ls 1`)
[code@samba ~]$ echo $array2

[code@samba ~]$ array3=(`ls axel-2.4`)
[code@samba ~]$ echo $array3
API

读取

全部元素

echo ${array3[@]}

echo ${array4[*]}

数组索引

echo ${!array5[@]}

指定索引下标

echo ${array6[2]}

echo ${array[5]:2:3}

读取array5从2开始后面3个元素

bash 复制代码
[code@samba ~]$ echo "${array3[@]}"
API axel axel.1 axel.c axel.h axel.o axelrc.example axel_zh_CN.1 CHANGES conf.c conf.h config.h configure conf.o conn.c conn.h conn.o COPYING CREDITS de.mo de.po ftp.c ftp.h ftp.o gui http.c http.h http.o Makefile Makefile.settings nl.mo nl.po README ru.mo ru.po search.c search.h search.o tcp.c tcp.h tcp.o text.c text.o zh_CN.mo zh_CN.po
[code@samba ~]$ array3=(harry a j "1")
[code@samba ~]$ array4=(1 2 3 4 "hello world" [10]=linux)
[code@samba ~]$ echo ${array4[0]}
1
[code@samba ~]$ echo ${array4[@]}
1 2 3 4 hello world linux
[code@samba ~]$ echo ${array4[#]}
-bash: #: 语法错误: 期待操作数 (错误符号是 "#")
[code@samba ~]$ echo ${array4[*]}
1 2 3 4 hello world linux
[code@samba ~]$ echo ${!array4[@]}
0 1 2 3 4 10
[code@samba ~]$ echo ${!array4[@]}
0 1 2 3 4 10
[code@samba ~]$ echo ${!array3[@]}
0 1 2 3
[code@samba ~]$ echo ${array4[@]:1:2}
2 3
[code@samba ~]$ echo ${array3[@:3:3]}
-bash: @:3:3: 语法错误: 期待操作数 (错误符号是 "@:3:3")
[code@samba ~]$ echo ${array3[@]:3:3}
1
[code@samba ~]$ echo ${array3[@]}
harry a j 1
[code@samba ~]$ echo ${array3[@]:1:2}
a j

declare -a

查看普通数组信息

bash 复制代码
[code@samba ~]$ declare -a
declare -a BASH_ARGC='()'
declare -a BASH_ARGV='()'
declare -a BASH_LINENO='()'
declare -ar BASH_REMATCH='()'
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 array='([0]="var1" [1]="var2" [2]="var3" [3]="var4")'
declare -a array1='([0]="root:x:0:0:root:/root:/bin/bash" [1]="bin:x:1:1:bin:/bin:/sbin/nologin" [2]="daemon:x:2:2:daemon:/sbin:/sbin/nologin" [3]="adm:x:3:4:adm:/var/adm:/sbin/nologin" [4]="lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin" [5]="sync:x:5:0:sync:/sbin:/bin/sync" [6]="shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown" [7]="halt:x:7:0:halt:/sbin:/sbin/halt" [8]="mail:x:8:12:mail:/var/spool/mail:/sbin/nologin" [9]="operator:x:11:0:operator:/root:/sbin/nologin" [10]="games:x:12:100:games:/usr/games:/sbin/nologin" [11]="ftp:x:14:50:FTP" [12]="User:/var/ftp:/sbin/nologin" [13]="nobody:x:99:99:Nobody:/:/sbin/nologin" [14]="systemd-network:x:192:192:systemd" [15]="Network" [16]="Management:/:/sbin/nologin" [17]="dbus:x:81:81:System" [18]="message" [19]="bus:/:/sbin/nologin" [20]="polkitd:x:999:998:User" [21]="for" [22]="polkitd:/:/sbin/nologin" [23]="libstoragemgmt:x:998:995:daemon" [24]="account" [25]="for" [26]="libstoragemgmt:/var/run/lsm:/sbin/nologin" [27]="colord:x:997:994:User" [28]="for" [29]="colord:/var/lib/colord:/sbin/nologin" [30]="rpc:x:32:32:Rpcbind" [31]="Daemon:/var/lib/rpcbind:/sbin/nologin" [32]="saned:x:996:993:SANE" [33]="scanner" [34]="daemon" [35]="user:/usr/share/sane:/sbin/nologin" [36]="gluster:x:995:992:GlusterFS" [37]="daemons:/run/gluster:/sbin/nologin" [38]="saslauth:x:994:76:Saslauthd" [39]="user:/run/saslauthd:/sbin/nologin" [40]="abrt:x:173:173::/etc/abrt:/sbin/nologin" [41]="setroubleshoot:x:993:990::/var/lib/setroubleshoot:/sbin/nologin" [42]="rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin" [43]="pulse:x:171:171:PulseAudio" [44]="System" [45]="Daemon:/var/run/pulse:/sbin/nologin" [46]="radvd:x:75:75:radvd" [47]="user:/:/sbin/nologin" [48]="chrony:x:992:987::/var/lib/chrony:/sbin/nologin" [49]="unbound:x:991:986:Unbound" [50]="DNS" [51]="resolver:/etc/unbound:/sbin/nologin" [52]="qemu:x:107:107:qemu" [53]="user:/:/sbin/nologin" [54]="tss:x:59:59:Account" [55]="used" [56]="by" [57]="the" [58]="trousers" [59]="package" [60]="to" [61]="sandbox" [62]="the" [63]="tcsd" [64]="daemon:/dev/null:/sbin/nologin" [65]="sssd:x:990:984:User" [66]="for" [67]="sssd:/:/sbin/nologin" [68]="usbmuxd:x:113:113:usbmuxd" [69]="user:/:/sbin/nologin" [70]="geoclue:x:989:983:User" [71]="for" [72]="geoclue:/var/lib/geoclue:/sbin/nologin" [73]="ntp:x:38:38::/etc/ntp:/sbin/nologin" [74]="gdm:x:42:42::/var/lib/gdm:/sbin/nologin" [75]="rpcuser:x:29:29:RPC" [76]="Service" [77]="User:/var/lib/nfs:/sbin/nologin" [78]="nfsnobody:x:65534:65534:Anonymous" [79]="NFS" [80]="User:/var/lib/nfs:/sbin/nologin" [81]="gnome-initial-setup:x:988:982::/run/gnome-initial-setup/:/sbin/nologin" [82]="sshd:x:74:74:Privilege-separated" [83]="SSH:/var/empty/sshd:/sbin/nologin" [84]="avahi:x:70:70:Avahi" [85]="mDNS/DNS-SD" [86]="Stack:/var/run/avahi-daemon:/sbin/nologin" [87]="postfix:x:89:89::/var/spool/postfix:/sbin/nologin" [88]="tcpdump:x:72:72::/:/sbin/nologin" [89]="caozx26:x:1000:1000:caozx26:/home/caozx26:/bin/bash" [90]="code:x:1001:1001::/home/code:/bin/bash" [91]="rsync:x:1002:1002::/home/rsync:/sbin/nologin" [92]="apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin" [93]="user01:x:1003:1003::/home/user01:/bin/bash" [94]="u02:x:1004:1005::/home/u02:/bin/bash" [95]="u03:x:13:48::/home/u03:/bin/bash" [96]="mysql:x:987:981::/home/mysql:/sbin/nologin")'
declare -a array2='()'
declare -a array3='([0]="harry" [1]="a" [2]="j" [3]="1")'
declare -a array4='([0]="1" [1]="2" [2]="3" [3]="4" [4]="hello world" [10]="linux")'

命令

a=ls ./


a=$[ ]

a=$()

bash 复制代码
[code@samba ~]$ kernel=`uname -r`
[code@samba ~]$ echo $kernal

[code@samba ~]$ uname -r
3.10.0-1160.el7.x86_64
[code@samba ~]$ kernel=`uname -r`
[code@samba ~]$ echo $kernel
3.10.0-1160.el7.x86_64
[code@samba ~]$ name=$(uname -r)
[code@samba ~]$ echo $name
3.10.0-1160.el7.x86_64

笔记

bash 复制代码
    ┌──────────────────────────────────────────────────────────────────────┐
    │                 • MobaXterm Personal Edition v23.2 •                 │
    │               (SSH client, X server and network tools)               │
    │                                                                      │
    │ ⮞ SSH session to code@192.168.235.10                                 │
    │   • Direct SSH      :  ✓                                             │
    │   • SSH compression :  ✓                                             │
    │   • SSH-browser     :  ✓                                             │
    │   • X11-forwarding  :  ✓  (remote display is forwarded through SSH)  │
    │                                                                      │
    │ ⮞ For more info, ctrl+click on help or visit our website.            │
    └──────────────────────────────────────────────────────────────────────┘

Last login: Sun Aug  3 15:31:49 2025 from 192.168.235.1
[code@samba ~]$ hostname
samba.web.cn
[code@samba ~]$ kernel=`uname -r`
[code@samba ~]$ echo $kernal

[code@samba ~]$ uname -r
3.10.0-1160.el7.x86_64
[code@samba ~]$ kernel=`uname -r`
[code@samba ~]$ echo $kernel
3.10.0-1160.el7.x86_64
[code@samba ~]$ name=$(uname -r)
[code@samba ~]$ echo $name
3.10.0-1160.el7.x86_64
[code@samba ~]$ a=10
[code@samba ~]$ b=20
[code@samba ~]$ echo $a+$b
10+20
[code@samba ~]$ declare -i a=10
[code@samba ~]$ declare -i b=20
[code@samba ~]$ declare -i c=$a+$b
[code@samba ~]$ echo $c
30
[code@samba ~]$ AAA=hello
[code@samba ~]$ export AAA
[code@samba ~]$ env|grep AAA
AAA=hello
[code@samba ~]$ declare -x BBB=hello
[code@samba ~]$ env|grep BBB
BBB=hello
[code@samba ~]$ array[0]=v1
[code@samba ~]$ array[1]=v2
[code@samba ~]$ array[3]=v3
[code@samba ~]$ array=(var1 var2 var3 var4)
[code@samba ~]$ array1=(`cat /etc/passwd`)
[code@samba ~]$ echo $array1
root:x:0:0:root:/root:/bin/bash
[code@samba ~]$ array2=(`ls /root`)
ls: 无法打开目录/root: 权限不够
[code@samba ~]$ ls
1.sh                    axel-2.4.tar.gz       inotify-tools-3.13.tar.gz  视频  桌面
apr-1.5.2.tar.bz2       bash_var.sh           mysql-5.6.31.tar.gz        图片
apr-util-1.5.4.tar.bz2  httpd-2.4.37.tar.bz2  nohup.out                  文档
axel-1.0a.tar.gz        inotify.sh            公共                       下载
axel-2.4                inotify-tools-3.13    模板                       音乐
[code@samba ~]$ mkdir 1
[code@samba ~]$ ls
1                       axel-2.4              inotify-tools-3.13         模板  音乐
1.sh                    axel-2.4.tar.gz       inotify-tools-3.13.tar.gz  视频  桌面
apr-1.5.2.tar.bz2       bash_var.sh           mysql-5.6.31.tar.gz        图片
apr-util-1.5.4.tar.bz2  httpd-2.4.37.tar.bz2  nohup.out                  文档
axel-1.0a.tar.gz        inotify.sh            公共                       下载
[code@samba ~]$ array2=(`ls /1`)
ls: 无法访问/1: 没有那个文件或目录
[code@samba ~]$ array2=(`ls 1`)
[code@samba ~]$ echo $array2

[code@samba ~]$ array3=(`ls axel-2.4`)
[code@samba ~]$ echo $array3
API
[code@samba ~]$ ls axel-2.4
API             CHANGES    conn.o   gui                README    tcp.o
axel            conf.c     COPYING  http.c             ru.mo     text.c
axel.1          conf.h     CREDITS  http.h             ru.po     text.o
axel.c          config.h   de.mo    http.o             search.c  zh_CN.mo
axel.h          configure  de.po    Makefile           search.h  zh_CN.po
axel.o          conf.o     ftp.c    Makefile.settings  search.o
axelrc.example  conn.c     ftp.h    nl.mo              tcp.c
axel_zh_CN.1    conn.h     ftp.o    nl.po              tcp.h
[code@samba ~]$ echo $array3[@]
API[@]
[code@samba ~]$ echo "${array3[@]}"
API axel axel.1 axel.c axel.h axel.o axelrc.example axel_zh_CN.1 CHANGES conf.c conf.h config.h configure conf.o conn.c conn.h conn.o COPYING CREDITS de.mo de.po ftp.c ftp.h ftp.o gui http.c http.h http.o Makefile Makefile.settings nl.mo nl.po README ru.mo ru.po search.c search.h search.o tcp.c tcp.h tcp.o text.c text.o zh_CN.mo zh_CN.po
[code@samba ~]$ array3=(harry a j "1")
[code@samba ~]$ array4=(1 2 3 4 "hello world" [10]=linux)
[code@samba ~]$ echo ${array4[0]}
1
[code@samba ~]$ echo ${array4[@]}
1 2 3 4 hello world linux
[code@samba ~]$ echo ${array4[#]}
-bash: #: 语法错误: 期待操作数 (错误符号是 "#")
[code@samba ~]$ echo ${array4[*]}
1 2 3 4 hello world linux
[code@samba ~]$ echo ${!array4[@]}
0 1 2 3 4 10
[code@samba ~]$ echo ${!array4[@]}
0 1 2 3 4 10
[code@samba ~]$ echo ${!array3[@]}
0 1 2 3
[code@samba ~]$ echo ${array4[@]:1:2}
2 3
[code@samba ~]$ echo ${array3[@:3:3]}
-bash: @:3:3: 语法错误: 期待操作数 (错误符号是 "@:3:3")
[code@samba ~]$ echo ${array3[@]:3:3}
1
[code@samba ~]$ echo ${array3[@]}
harry a j 1
[code@samba ~]$ echo ${array3[@]:1:2}
a j
[code@samba ~]$ declare -a
declare -a BASH_ARGC='()'
declare -a BASH_ARGV='()'
declare -a BASH_LINENO='()'
declare -ar BASH_REMATCH='()'
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 array='([0]="var1" [1]="var2" [2]="var3" [3]="var4")'
declare -a array1='([0]="root:x:0:0:root:/root:/bin/bash" [1]="bin:x:1:1:bin:/bin:/sbin/nologin" [2]="daemon:x:2:2:daemon:/sbin:/sbin/nologin" [3]="adm:x:3:4:adm:/var/adm:/sbin/nologin" [4]="lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin" [5]="sync:x:5:0:sync:/sbin:/bin/sync" [6]="shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown" [7]="halt:x:7:0:halt:/sbin:/sbin/halt" [8]="mail:x:8:12:mail:/var/spool/mail:/sbin/nologin" [9]="operator:x:11:0:operator:/root:/sbin/nologin" [10]="games:x:12:100:games:/usr/games:/sbin/nologin" [11]="ftp:x:14:50:FTP" [12]="User:/var/ftp:/sbin/nologin" [13]="nobody:x:99:99:Nobody:/:/sbin/nologin" [14]="systemd-network:x:192:192:systemd" [15]="Network" [16]="Management:/:/sbin/nologin" [17]="dbus:x:81:81:System" [18]="message" [19]="bus:/:/sbin/nologin" [20]="polkitd:x:999:998:User" [21]="for" [22]="polkitd:/:/sbin/nologin" [23]="libstoragemgmt:x:998:995:daemon" [24]="account" [25]="for" [26]="libstoragemgmt:/var/run/lsm:/sbin/nologin" [27]="colord:x:997:994:User" [28]="for" [29]="colord:/var/lib/colord:/sbin/nologin" [30]="rpc:x:32:32:Rpcbind" [31]="Daemon:/var/lib/rpcbind:/sbin/nologin" [32]="saned:x:996:993:SANE" [33]="scanner" [34]="daemon" [35]="user:/usr/share/sane:/sbin/nologin" [36]="gluster:x:995:992:GlusterFS" [37]="daemons:/run/gluster:/sbin/nologin" [38]="saslauth:x:994:76:Saslauthd" [39]="user:/run/saslauthd:/sbin/nologin" [40]="abrt:x:173:173::/etc/abrt:/sbin/nologin" [41]="setroubleshoot:x:993:990::/var/lib/setroubleshoot:/sbin/nologin" [42]="rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin" [43]="pulse:x:171:171:PulseAudio" [44]="System" [45]="Daemon:/var/run/pulse:/sbin/nologin" [46]="radvd:x:75:75:radvd" [47]="user:/:/sbin/nologin" [48]="chrony:x:992:987::/var/lib/chrony:/sbin/nologin" [49]="unbound:x:991:986:Unbound" [50]="DNS" [51]="resolver:/etc/unbound:/sbin/nologin" [52]="qemu:x:107:107:qemu" [53]="user:/:/sbin/nologin" [54]="tss:x:59:59:Account" [55]="used" [56]="by" [57]="the" [58]="trousers" [59]="package" [60]="to" [61]="sandbox" [62]="the" [63]="tcsd" [64]="daemon:/dev/null:/sbin/nologin" [65]="sssd:x:990:984:User" [66]="for" [67]="sssd:/:/sbin/nologin" [68]="usbmuxd:x:113:113:usbmuxd" [69]="user:/:/sbin/nologin" [70]="geoclue:x:989:983:User" [71]="for" [72]="geoclue:/var/lib/geoclue:/sbin/nologin" [73]="ntp:x:38:38::/etc/ntp:/sbin/nologin" [74]="gdm:x:42:42::/var/lib/gdm:/sbin/nologin" [75]="rpcuser:x:29:29:RPC" [76]="Service" [77]="User:/var/lib/nfs:/sbin/nologin" [78]="nfsnobody:x:65534:65534:Anonymous" [79]="NFS" [80]="User:/var/lib/nfs:/sbin/nologin" [81]="gnome-initial-setup:x:988:982::/run/gnome-initial-setup/:/sbin/nologin" [82]="sshd:x:74:74:Privilege-separated" [83]="SSH:/var/empty/sshd:/sbin/nologin" [84]="avahi:x:70:70:Avahi" [85]="mDNS/DNS-SD" [86]="Stack:/var/run/avahi-daemon:/sbin/nologin" [87]="postfix:x:89:89::/var/spool/postfix:/sbin/nologin" [88]="tcpdump:x:72:72::/:/sbin/nologin" [89]="caozx26:x:1000:1000:caozx26:/home/caozx26:/bin/bash" [90]="code:x:1001:1001::/home/code:/bin/bash" [91]="rsync:x:1002:1002::/home/rsync:/sbin/nologin" [92]="apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin" [93]="user01:x:1003:1003::/home/user01:/bin/bash" [94]="u02:x:1004:1005::/home/u02:/bin/bash" [95]="u03:x:13:48::/home/u03:/bin/bash" [96]="mysql:x:987:981::/home/mysql:/sbin/nologin")'
declare -a array2='()'
declare -a array3='([0]="harry" [1]="a" [2]="j" [3]="1")'
declare -a array4='([0]="1" [1]="2" [2]="3" [3]="4" [4]="hello world" [10]="linux")'
[code@samba ~]$ declare -i d=2
[code@samba ~]$ echo $d
2
[code@samba ~]$ echo ${!array3[@]}
0 1 2 3
[code@samba ~]$ echo ${array}