`

Shell数组:shell数组的定义、数组长度

阅读更多
Shell在编程方面比Windows批处理强大很多,无论是在循环、运算。

bash支持一维数组(不支持多维数组),并且没有限定数组的大小。类似与C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0。
定义数组

在Shell中,用括号来表示数组,数组元素用“空格”符号分割开。定义数组的一般形式为:
  
 array_name=(value1 ... valuen)

例如:
array_name=(value0 value1 value2 value3)

或者
array_name=(
value0
value1
value2
value3
)

还可以单独定义数组的各个分量:
array_name[0]=value0
array_name[1]=value1
array_name[2]=value2
可以不使用连续的下标,而且下标的范围没有限制。
读取数组

读取数组元素值的一般格式是:
    ${array_name[index]}
例如:
valuen=${array_name[2]}

举个例子:
#!/bin/sh
NAME[0]="Zara"
NAME[1]="Qadir"
NAME[2]="Mahnaz"
NAME[3]="Ayan"
NAME[4]="Daisy"
echo "First Index: ${NAME[0]}"
echo "Second Index: ${NAME[1]}"

运行脚本,输出:
$./test.sh
First Index: Zara
Second Index: Qadir


使用@ 或 * 可以获取数组中的所有元素,例如:
${array_name[*]}
${array_name[@]}


举个例子:
#!/bin/sh
NAME[0]="Zara"
NAME[1]="Qadir"
NAME[2]="Mahnaz"
NAME[3]="Ayan"
NAME[4]="Daisy"
echo "First Method: ${NAME[*]}"
echo "Second Method: ${NAME[@]}"

运行脚本,输出:
$./test.sh
First Method: Zara Qadir Mahnaz Ayan Daisy
Second Method: Zara Qadir Mahnaz Ayan Daisy

获取数组的长度

获取数组长度的方法与获取字符串长度的方法相同,例如:
复制纯文本新窗口

# 取得数组元素的个数
length=${#array_name[@]}

# 或者
length=${#array_name[*]}

# 取得数组单个元素的长度
lengthn=${#array_name[n]}
分享到:
评论

相关推荐

    浅谈shell数组的定义及循环

    **获取数组长度** 在Shell中,我们可以使用`${#arrayName[@]}`或`${#arrayName[*]}`来获取数组的长度。这两个表达式都是有效的,但它们在某些场景下会有不同的行为。在上述示例中, `${#arrayWen[@]}` 用于获取`...

    Shell 数组与关联数组详解及实例代码

    Shell 数组与关联数组 1.数组 1.1. 数组定义 一对圆括号表示数组,数组元素...长度:用${#数组名[@或*]} 可以得到数组长度 xiaosi@Qunar:~$ echo ${#a[@]} 3 xiaosi@Qunar:~$ echo ${#a[*]} 3 获取元素:用${数组名

    Linux Shell 数组的创建及使用技巧

    本篇文章将深入探讨Linux Shell数组的创建、读取、赋值以及一些特殊的使用技巧。 1. **数组定义**: 在Shell中,数组的定义非常直观。例如,创建一个包含1到5的数组可以这样写: ``` a=(1 2 3 4 5) ``` 这里的...

    Linux shell数组建立和使用技巧

    数组定义  [chengmo@centos5 ~]$ a=(1 2 3 4 5)  [chengmo@centos5 ~]$ echo $a  1  一对括号表示是数组,数组元素用“空格”符号分割开。  2.数组读取与赋值  得到长度:  [chengmo@centos5 ~]$ echo...

    Linux Shell 数组建立及使用技巧

    1. **数组定义**: 在Shell中,数组的定义简单直观。例如,我们可以这样创建一个包含1到5的数组: ``` a=(1 2 3 4 5) ``` 这里,一对括号定义了一个数组`a`,数组元素之间由空格分隔。 2. **数组读取与赋值**...

    Linux shell数组循环的实例详解

    echo "数组的长度:"${#arr[*]} ``` 输出: ``` 所有的内容如下: a b c 数组的长度: 3 ``` 接下来,我们来介绍如何使用`for`循环遍历数组中的每个元素。以下是一个简单的例子: ```bash for var in ${arr[@]} ...

    linux shell 中数组的定义和for循环遍历的方法

    本文将详细介绍如何在Linux Shell中定义数组以及如何使用`for`循环遍历数组。 ### 数组的定义 在Linux Shell中,定义数组的语法如下: ```bash variable=(元素1 元素2 元素3 ...) ``` 元素之间使用空格分隔。...

    shell中的数组操作小结和冒泡排序实现脚本分享

    shell数组介绍: 代码如下: //数组变量定义: $ arr=(1 3 6 8 2 5 9 0 7 4) // 默认获取第一个元素 $ echo $arr // 通过下标访问,下面取的数组第二个元素,shell数组下标是从0开始 $ echo ${arr[1]}  // 访问整个...

    Shell脚本数组操作小结

    ### 获取数组长度 获取数组元素个数的方法是: ```bash length=${#array_name[@]} # 或者 length=${#array_name[*]} ``` 若要获取单个元素的长度,可以使用`${#array_name[n]}`。 ### 数组操作 #### 替换 替换...

    Linux shell数组建立及使用技巧

    数组定义  [chengmo@centos5 ~]$ a=(1 2 3 4 5)  [chengmo@centos5 ~]$ echo $a  1  一对括号表示是数组,数组元素用“空格”符号分割开。  2.数组读取与赋值  得到长度:  [chengmo@centos5 ~]$ echo...

    Shell中创建序列和数组(list、array)的方法

    这样,`aNumList`就是一个包含100个元素的数组,你可以通过`echo ${#aNumList[@]}`来查看数组的长度。 ### 二、通过内部`{begin..end}`生成序列 另一种生成序列的方法是使用Shell的内部运算符`{begin..end}`。例如...

    Shell开发教程.docx

    Shell数组:shell数组的定义、数组长度 **数组定义**: - `array_name=(element1 element2 ...)` - 访问元素:`echo "${array_name[0]}"` **数组长度**: - 使用`${#array_name[@]}`获取数组长度。 #### 13. ...

    shell从入门到精通

    5. 函数与数组:Shell脚本可以定义函数,用于执行特定的任务。数组在Shell脚本中也可以使用,但数组的索引从0开始。 6. 正则表达式:Shell支持正则表达式,这使得在文本处理中进行模式匹配变得非常方便。 7. 文本...

    基于c语言的Linux shell.zip

    缺点:数组的长度是固定的,不适合存储大小不固定的动态数据,另外数组在内存中是连续分配的,当数组较大时可能会导致内存碎片化。 链表: 优点:可以方便地插入和删除元素,适用于需要频繁插入和删除数据的场合。 ...

    shell学习1

    4. 计算数组长度:`len=${#array[@]}`。 四、Shell传递参数 1. 在脚本中,可以使用`echo $0 $1 $2`来输出传入的参数,其中`$0`是脚本本身的名称,`$1`, `$2`等是传递的参数。 2. 通过`echo $#`获取参数总数,`echo ...

Global site tag (gtag.js) - Google Analytics