bash的扩展介绍
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇文章主要介绍bash中的扩展。其中重点介绍了bash中的花括号扩展Brace Expansion,详细介绍了括号扩展的定义和格式,有一定的参考价值,有需要的朋友可以参考一下。bash的所有扩展(e
千家信息网最后更新 2026年11月01日bash的扩展介绍本篇文章主要介绍bash中的扩展。其中重点介绍了bash中的花括号扩展Brace Expansion,详细介绍了括号扩展的定义和格式,有一定的参考价值,有需要的朋友可以参考一下。
- bash的所有扩展(expansion)如下:
Brace Expansion(花括号扩展)
Tilde Expansion(波浪号扩展)
Parameter and Variable Expansion (参数和变量扩展)
Command Substitution(命令置换)
Arithmetic Expansion(算数扩展)
Word Splitting(单词分割)
Pathname Expansion(路径扩展)
上面列举的顺序正是bash在扩展时的顺序
- 花括号展开的定义(Brace Expansion)
花括号扩展也称大括号扩展,是可以让bash生成任意字符串的一种扩展功能。它与"路径扩展"非常相似,唯一不同的是生成的字符串可以是不存在的路径或者文件名
在bash中,花括号扩展在诸多扩展中优先级最高,因此类似于echo {a,b}$PATH的语句在完成花括号扩展之后的结果应该为 a$PATH b$PATH,而对PATH环境变量的扩展要到后续的"参数和变量扩展"阶段才开始 - 花括号扩展的两种格式
3.1 第一类格式为:
preamble+{string1,string2,string3,...,stringN}+postcript
左右的花括号是必须的,中间的字符串列表分别由逗号隔开,注意逗号前后不能有空格,如果string中有空格,则需要单引号或者双引号扩起来
bash在实际扩展时,会将preamble和花括号中的所有字符串(按照从左到右的顺序)相连,最后分别加上postscript。
此外,花括号中间至少有一个逗号,否则bash不会认为花括号扩展,例如:
echo {moneny},想要输出money,需要改为echo{money,} 如下:
[root@master01 ~]# echo {money}
{money}
[root@master01 ~]# echo {money,}
money
查看完整的例子(注意空格的处理)
[root@master01 ~]# echo sp{el,il,al}l
spell spill spall
[root@master01 ~]# echo sp{el,il, al}l
sp{el,il, al}l
[root@master01 ~]# echo sp{el,il,' al'}l
spell spill sp all
[root@master01 ~]# echo sp{el,il," "al}l
spell spill sp all
[root@master01 ~]# echo sp{el,il,' 'al}l
spell spill sp all
[root@master01 ~]# echo sp{el,il," al"}l
spell spill sp all
3.2 第二类格式为:
preamble+{.. ..[INCR]}+postscript
其中.. 组合而成的表达式术语叫做序列表达式(sequence expansion),表示一个特定的范围。当 和 是数字,代表的是数字范围;当 和 是单个字母时,代表是字符范围(默认LC_ALL字符排列)。 和 必须同为数字或者字母,否则bash不认为是花括号扩展,而是原样输出。
[root@master01 ~]# echo {1..12}
1 2 3 4 5 6 7 8 9 10 11 12
[root@master01 ~]# echo {3..-2}
3 2 1 0 -1 -2
[root@master01 ~]# echo {a..g}
a b c d e f g
[root@master01 ~]# echo {h..a}
h g f e d c b a
其中的是可选的,代表的是区间范围的递增数,它必须是数字。例如:
[root@master01 ~]# echo {0..10..2}
0 2 4 6 8 10
从0开始,每递增2个数字就取出相应的数字。
如果不指定,那么默认是1或者是-1,具体是1或者-1,要看前面区间范围是递增还是递减的,比如上面例子的{a..g}中默认是1,{h..a}默认为-1
另外,当和 是数字时,我们可以通过数字前面加0来输出结果长度保持一致,
[root@master01 ~]# echo {1..10}
1 2 3 4 5 6 7 8 9 10
[root@master01 ~]# echo {01..10}
01 02 03 04 05 06 07 08 09 10
[root@master01 ~]# echo {001..10}
001 002 003 004 005 006 007 008 009 010
这样格式长度一样,会显得很美观
括号
数字
字符
格式
范围
字符串
代表
变量
路径
逗号
顺序
输出
例子
内容
区间
参数
字母
引号
更多
结果
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
咖啡豆
瑰夏咖啡
互联网科技公司经营范围
成都互联网科技公司
奇酷互联网络科技公司
长亮科技互联网金融
互联网科技大会
华中科技有哪些互联网大佬
成都玖崟互联网科技有限公司乐商圈怎么样
中化能源互联网科技招聘
厦门比较好的科技互联网公司
洛阳昕诺飞互联网科技有限公司
特约风豹互联网科技为什么扣费
山东有哪些互联网科技公司
上海京穆互联网科技有限公司
半导体是互联网高科技吗
广州智享互联网科技
网互联网络科技
科技互联网企业在行动
知域互联网科技有限公司官网
互联网科技英文
杭州互联网科技公司
互联网科技媒体
狮子座互联网科技有限公司
盛创互联网科技有限公司
成都玖崟互联网科技有限公司乐商圈怎么样
爱医互联网络科技
元气玛特互联网科技公司是外包吗
互联网科技收购价值
山东蛋芒互联网科技有限公司