bash的扩展介绍
发表于:2024-10-17 作者:千家信息网编辑
千家信息网最后更新 2024年10月17日,本篇文章主要介绍bash中的扩展。其中重点介绍了bash中的花括号扩展Brace Expansion,详细介绍了括号扩展的定义和格式,有一定的参考价值,有需要的朋友可以参考一下。bash的所有扩展(e
千家信息网最后更新 2024年10月17日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安全错误
数据库的锁怎样保障安全
连接打印服务器
网络技术专家刘大伟
炼油厂租房软件开发
软件开发里程碑的意思是什么
农业数据库分为
视频服务器发生错误是怎么回事
山西多功能软件开发报价表
华为服务器RAID卡配置
刺刀 网络安全
深圳敏捷软件开发有限公司
服务器1005
家里装个服务器能玩单机游戏吗
济南软件开发平均工资
电脑腾讯管家登录qq服务器失败
一碑网络技术有限公司
淄博物流报价软件开发公司
中国初创企业数据库
三种中文数据库的比较
node实现头像上传到服务器
无线网络技术对接岗位
伟天网络技术有限公司怎么样
视图技术在数据库设计
数据库字典 word
湖南网络安全大赛视频
天津通用软件开发市场价
我的世界服务器怎么防止小号
网络安全文化经营许可证
数据库细分职业
蜂萝网络技术北京有限公司
隐藏服务器信息