Bash序列表达式(范围)
时间:2020-03-05 15:31:38 来源:igfitidea点击:
在本文中,我们将介绍Bash中序列表达式的基本知识。
Bash序列表达式通过定义范围的起点和终点来生成整数或者字符的范围。
它通常与for循环结合使用。
Bash序列表达式
序列表达式采用以下形式:
{START..END[..INCREMENT]}
表达式以左大括号开始,以右大括号结束。
开始和结束可以是正整数或者单个字符。
起始值和结束值是必需的,它们之间用两个点隔开,中间没有空格。
增量值是可选的。
如果存在,则必须用两个点…将其与结束值分隔开来,且两个点之间没有空格。
当给定字符时,表达式按字典顺序展开。表达式扩展到开始和结束之间的每个数字或者字符,包括提供的值。
格式错误的表达式将保持不变。
下面是实际操作的表达式:
echo {0..3}
未提供增量时,默认增量为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
如果起始值大于结束,则表达式将创建一个递减范围:
for i in {3..0} do echo "Number: $i" done
Number: 3 Number: 2 Number: 1 Number: 0
当给定增量时,将其用作每个生成项之间的步长:
for i in {0..20..5} do echo "Number: $i" done
每个生成的数字都比前面的数字大5倍:
Number: 0 Number: 5 Number: 10 Number: 15 Number: 20
使用整数生成范围时,可以添加前导0以强制每个数字具有相同的长度。
要使用前导零前缀填充生成的整数,请执行以下操作:
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..