Shell基础——Shell扩展

Shell的执行过程里说到,Shell将输入分解为tokens后,会按照下面的顺序进行扩展:

  • { }扩展
  • ~扩展
  • Shell参数和变量扩展
  • 命令替换
  • 算术扩展
  • 进程替换
  • 单词拆解
  • 文件名扩展
  • 引号删除
    其中,{ }扩展,单词拆解,文件名扩展,"$@“和$*,”${name[@]}"和${name[*]}会在扩展后增加单词的数目,其他的扩展都是一个单词扩展为另一个单词。

{ }扩展

{ }扩展的格式是可选的前缀,然后是{ }之间一系列用逗号分隔的字符串或序列表达式,然后是可选的后缀。扩展后,在{ }中的每个字符串之前加上前缀,之后加上后缀。{ }扩展后的结果保留了{ }里的顺序。

$ echo a{
   b,c,d}e
abe ace ade

{ }扩展可嵌套

$ echo a{
   b{
   1,2,3},c,d}e
ab1e ab2e ab3e ace ade

{ }扩展里的序列表达式格式

{
   x..y[..incr]}

例子

$ echo {
   1..10} # 整型
1 2 3 4 5 6 7 8 9 10
$ echo {
   01..0100} # 整型,固定宽度为4
0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 0100
$ echo {
   01..100} # 整型,固定宽度为3
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055 056 057 058 059 060 061 062 063 064 065 066 067 068 069 070 071 072 073 074 075 076 077 078 079 080 081 082 083 084 085 086 087 088 089 090 091 092 093 094 095 096 097 098 099 100
$ 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值