📜  bash 列表列 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:29:34.975000             🧑  作者: Mango

Bash 列表处理 - Shell-Bash

在 Shell 编程中,列表处理很常见。我们经常需要从文件中读取一个列表,或者从用户的输入中获取一个列表,然后对列表中的每一个元素进行处理。

在 Bash 中,有很多方法可以处理列表。在本文中,我们将介绍 Bash 中的一些常见列表处理方法。

1. 数组

数组是 Bash 中最常见的列表类型。数组可以包含任何类型的数据,包括字符串、数字和其他数组。

创建数组

要创建数组,可以在数组名前使用 declare 命令,或者直接将元素赋值给数组名。

declare -a my_array   # 使用 declare 声明数组
my_array=( "apple" "banana" "cherry" )  # 直接将元素赋给数组名
访问数组元素

要访问数组元素,可以使用元素的下标,下标从 0 开始计数。

echo ${my_array[0]}  # 输出数组的第一个元素
echo ${my_array[2]}  # 输出数组的第三个元素
遍历数组

要遍历数组,可以使用 for 循环。

for fruit in "${my_array[@]}"; do
  echo $fruit
done
数组操作

Bash 中有许多数组操作,包括添加元素、删除元素、获取数组长度等等。以下是一些常见的数组操作。

添加元素

my_array+=( "orange" )  # 在数组末尾添加元素
my_array[3]="pear"     # 在数组的第四个位置添加元素

删除元素

unset my_array[1]  # 删除数组的第二个元素

获取数组长度

echo ${#my_array[@]}  # 输出 my_array 的元素个数
2. 列表扩展

Bash 中的列表扩展是一种特殊的语法,可以轻松地生成一个列表。

范围表达式

范围表达式可以表示一个整数范围。下面是两个使用范围表达式生成的列表。

echo {1..5}  # 输出 1 2 3 4 5
echo {a..d}  # 输出 a b c d
字符串列表

可以使用大括号和逗号将字符串列表组合在一起。

echo "{apple,banana,cherry}"  # 输出 apple banana cherry
通配符

Bash 中的通配符是一种可以匹配多个文件或目录的特殊字符。

echo *.txt  # 输出所有扩展名为 .txt 的文件
3. 处理命令输出

我们可以使用各种方法获取命令的输出,例如使用反引号或 $() 将命令括在一起。然后可以将输出分割成行、单词或字符进行处理。

分割为行
# 将命令输出分割为行
command | while read line; do
  echo "Line: $line"
done
分割为单词
# 将命令输出分割为单词
for word in $(command); do
  echo "Word: $word"
done
分割为字符
# 将命令输出分割为字符
echo "something" | fold -w1 | while read char; do
  echo "Char: $char"
done
4. 结论

在 Bash 中,有许多方法可以处理列表。数组是 Bash 中最常见的列表类型。列表扩展可以轻松地生成一个列表。处理命令输出时,可以将输出分割为行、单词或字符进行处理。