发布网友 发布时间:2024-09-29 09:20
共1个回答
热心网友 时间:2024-10-25 16:39
花括号扩展可以让我们按照花括号里的模式创建一连串字符串。
例如:
可以看到打印了:
由于默认模式下,不能忽略空格,这里使用 _ 代替空格。
这里的开头部分 Love_ 被称为 前导字符(preamble ),结尾部分 _Forever 被称为 附言(postscript) 。
我们还可以按顺序输出设定范围内的字母或者数字,例如:
终端里将打印出:
打印字母的时候有点 特殊问题 ,我们先来看下面按序输出大写的A到Z的字母:
再来看全是小写字母a到z:
目前为止都很正常,但是我们输入:
这时候打印出的是:
可以看到先输出全部大写字母,然后出现一堆符号,然后再全部小写字母。很奇怪对吧,等会再解释为什么这样,我们再来看输入:
这时候返回的是:
更加奇怪了是不是,这是为什么呢?
我们来看一个东西,ASCII码表:
这时候我们看65号的A到122号的z之间,除了大小写字母之外,是不是出现了那堆奇怪的符号。这是因为花括号扩展的顺序是按照ASCII码表的顺序输出的。
这时候我们也就可以理解 echo {a..Z} 为什么会返回那段字符串了,因为在ASCII码表中其实是倒序的。
不过经过测试可以发现,由于其他符号有已经被赋予特殊含义,就只有大小写字母之间会出现这个问题。需要在使用中注意哦!
花括号扩展支持嵌套,例如:
花括号扩展普遍应用于创建一系列文件或者目录,这时候就可能需要按照时间来命名,手动输入一个个输入太麻烦了,这时候也可以使用花括号扩展,如下:
可以看到 01 自动变成 1 ,这样不能让月份都为两位,不好看。可以这样: