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安全错误
数据库的锁怎样保障安全
绝地大逃杀选服务器
计算机网络技术逻辑要求高
磁盘怎么和服务器连接
进入服务器桌面
一般游戏服务器有多少
任天堂墨西哥服务器
前端页面实现数据库清理
润锦网络技术有限公司
嘉定区综合软件开发服务要求
梦三国 服务器繁忙
湖州工业软件开发自学步骤
靠谱的五金切割软件开发设计
cetos8搭建web服务器
2021互联网科技新闻
图书馆信息数据库er图
蔡甸专业的软件开发公司
vfp数据库管理系统
excel 连数据库
现在有几个数据库公司
涉密软件开发过程中的要求
游戏只有一个服务器打不开
阜阳服务器机箱机柜企业
非法软件开发商是否跟广告商合作
黄浦区服务器精密空调价格
数据库中定点小数
有关网络安全周的演讲词
怎么进行cmd数据库创建表
数据库开发的专业技能怎么写
mfc怎么调用数据库
金蝶云用的是哪家的云服务器