拓展阅读

linux Shell 命令行-00-intro 入门介绍

linux Shell 命令行-02-var 变量

linux Shell 命令行-03-array 数组

linux Shell 命令行-04-operator 操作符

linux Shell 命令行-05-test 验证是否符合条件

linux Shell 命令行-06-flow control 流程控制

linux Shell 命令行-07-func 函数

linux Shell 命令行-08-file include 文件包含

linux Shell 命令行-09-redirect 重定向

定义

Shell 仅支持单维数组。

  [plaintext]
1
array=(值1 值2 ... 值n)
  • array.sh
  [shell]
1
2
3
4
5
6
7
8
9
10
11
#!/bin/sh # 数组演示 array=(a b "c" d) # 另一种定义数组的方式 array_two[0]=a array_two[1]=b array_two[2]="c" array_two[3]=d

读取

您可以这样从数组中读取:

  [plaintext]
1
${array_name[index]}
  • read_array.sh
  [shell]
1
2
3
4
5
6
7
8
9
#!/bin/sh # 从数组中读取 array=(a b c "d") echo "第一个元素是 ${array[0]}" echo "第二个元素是 ${array[1]}" echo "第三个元素是 ${array[2]}" echo "最后一个元素是 ${array[-1]}"
  • 运行
  [shell]
1
2
3
4
5
6
root@iZuf60ahcky4k4nfv470juZ:~/code/shell# chmod +x read_array.sh root@iZuf60ahcky4k4nfv470juZ:~/code/shell# ./read_array.sh 第一个元素是 a 第二个元素是 b 第三个元素是 c 最后一个元素是 d

读取所有元素

我们可以使用 *@ 来获取数组中的所有元素。

  • read_all_array.sh
  [shell]
1
2
3
4
5
6
#!/bin/sh # 读取数组中的所有元素 array=(a b c d) echo "数组中的所有元素:${array[*]}" echo "数组中的所有元素:${array[@]}"
  • 运行
  [shell]
1
2
3
4
root@iZuf60ahcky4k4nfv470juZ:~/code/shell# chmod +x read_all_array.sh root@iZuf60ahcky4k4nfv470juZ:~/code/shell# ./read_all_array.sh 数组中的所有元素:a b c d 数组中的所有元素:a b c d

数组长度

我们可以使用 ${#array[*]}${#array[@]} 来获取数组的大小。

  • array_length.sh
  [shell]
1
2
3
4
5
6
!#/bin/sh # 数组长度 array=(a b c d E) echo "数组的大小为:${#array[*]}" echo "数组的大小为:${#array[@]}"
  • 运行
  [shell]
1
2
3
4
root@iZuf60ahcky4k4nfv470juZ:~/code/shell# chmod +x array_length.sh root@iZuf60ahcky4k4nfv470juZ:~/code/shell# ./array_length.sh 数组的大小为:5 数组的大小为:5

参考资料

https://www.runoob.com/linux/linux-shell.html