云网牛站
所在位置:首页 > Linux编程 > 讲解在Linux平台中的Bash序列表达式(Sequence Expression)

讲解在Linux平台中的Bash序列表达式(Sequence Expression)

2020-02-10 10:44:55作者:李哲稿源:云网牛站

在本文中,我们将介绍Bash中序列表达式(Sequence Expression)的基础,以在Linux平台中为例。Bash序列表达式通过定义范围(Range)的起点和终点来生成整数或字符范围,它通常与for循环结合使用。

讲解在Linux平台中的Bash序列表达式(Sequence Expression)

 

Bash序列表达式(Bash Sequence Expression)

序列表达式采用以下形式:

{START..END[..INCREMENT]}

注:

表达式以一个大括号开始,以一个大括号结束。

START和END可以是正整数或单个字符。

START和END值是强制性的,并用两个点..隔开,它们之间没有空格。

INCREMENT值是可选的,如果存在,它必须与END值分开,并带有两个点..,且点之间没有空格,给定字符后,将按字典顺序扩展表达式。

该表达式将扩展为START和END之间的每个数字或字符,包括提供的值。

格式错误的表达式将保持不变。

这是实际的表达方式:

echo {0..3}

参考:echo命令_Linux echo命令使用详解:输出指定的字符串或者变量

如果未提供INCREMENT,则默认增量为1:

0 1 2 3

您也可以使用其他字符,下面的示例打印字母:

echo {a..z}

返回:

a b c d e f g h i j k l m n o p q r s t u v w x y z

如果START值大于END,则表达式将创建一个递减范围:

for i in {3..0}

do

echo "Number: $i"

done

返回:

Number: 3

Number: 2

Number: 1

Number: 0

当给出INCREMENT时,它用作每个生成的项目之间的步骤:

for i in {0..20..5}

do

echo "Number: $i"

done

每个生成的数字比前一个数字大5:

Number: 0

Number: 5

Number: 10

Number: 15

Number: 20

使用整数生成范围时,可以添加前导0以强制每个数字具有相同的长度,要用前导零填充生成的整数,请在START和END前面加上零:

for i in {00..3}

do

echo "Number: $i"

done

返回:

Number: 00

Number: 01

Number: 02

Number: 03

表达式可以使用其他字符作为前缀或后缀:

echo A{00..3}B

返回:

A00B A01B A02B A03B

如果表达式的构造不正确,则将其保持不变:

echo {0..}

返回:

0..

 

结语

Bash序列表达式使您可以生成一系列整数或字符。

 

相关主题

Shell脚本学习(Linux命令行)第二十章:正则表达式

精选文章
热门文章