Shell教程-数组

【实验目的】

1.了解shell编程数组

2.掌握基本shell数组

【实验原理】

数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。

与大部分编程语言类似,数组元素的下标由0开始。

【实验环境】

Linux Ubuntu 16.04

【实验内容】

1.通过实例来了解shell数组

2.实操来掌握本节内容

【实验步骤】

1、实例

Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下:

array_name=(value1 ... valuen)

例如:

sudo vim array.sh
#!/bin/bash  
my_array=(A B "C" D)

我们也可以使用下标来定义数组:

array_name[0]=value0  
array_name[1]=value1  
array_name[2]=value2

2、读取数组

读取数组元素值的一般格式是:

${array_name[index]}

eg:创建一个sh脚本文件

sudo vim  array1.sh

脚本内容如下:

!/bin/bash  
my_array=(A B "C" D)  
echo "第一个元素为: ${my_array[0]}"  
echo "第二个元素为: ${my_array[1]}"  
echo "第三个元素为: ${my_array[2]}"  
echo "第四个元素为: ${my_array[3]}"

Linux||Linux操作之Shell编程-数组(Ubuntu 16.04)_Ubuntu

执行脚本,输出结果如下所示:

Linux||Linux操作之Shell编程-数组(Ubuntu 16.04)_Linux_02

3、获取数组中的所有元素

使用@ 或 * 可以获取数组中的所有元素,例如:

sudo vim array2.sh

脚本内容如下:

#!/bin/bash  
 my_array[0]=A  
 my_array[1]=B  
 my_array[2]=C  
 my_array[3]=D  
 echo "数组的元素为: ${my_array[*]}"  
 echo "数组的元素为: ${my_array[@]}"

Linux||Linux操作之Shell编程-数组(Ubuntu 16.04)_vim_03

执行脚本,输出结果如下所示:

Linux||Linux操作之Shell编程-数组(Ubuntu 16.04)_数组元素_04

4、获取数组的长度

获取数组长度的方法与获取字符串长度的方法相同,例如:

sudo vim array3.sh

脚本内容如下:

#!/bin/bash  
my_array[0]=A  
my_array[1]=B  
my_array[2]=C  
my_array[3]=D  
echo "数组元素个数为: ${#my_array[*]}"  
echo "数组元素个数为: ${#my_array[@]}"

Linux||Linux操作之Shell编程-数组(Ubuntu 16.04)_数组_05

执行脚本,输出结果如下所示:

Linux||Linux操作之Shell编程-数组(Ubuntu 16.04)_vim_06

【补充】

概念: 管道, 重定向

 管道 (|) 将一个命令的输出作为另外一个命令的输入。

grep "hello" file.txt | wc -l

在file.txt中搜索包含有”hello”的行并计算其行数。

在这里grep命令的输出作为wc命令的输入。当然您可以使用多个命令。

重定向:将命令的结果输出到文件,而不是标准输出(屏幕)。

> 写入文件并覆盖旧文件

>> 加到文件的尾部,保留旧文件内容。

(ctrl+c退出)

关系运算符

关系运算符只支持数字,不支持字符串,除非字符串的值是数字。

下表列出了常用的关系运算符,假定变量 a 为 10,变量 b 为 20:

Linux||Linux操作之Shell编程-数组(Ubuntu 16.04)_数组元素_07