Shell学习·模式扩展
标签: Linux
upupor   370   0 2020-04-24 11:35 
最新一次编辑的原因:

你可能有这样的疑问,什么是模式扩展?不要着急,我们在shell里面经常会进行如下操作

cat  /home/upupor 来查看 home 目录下的所有以upupor开头的文件,命令中的   就代表着通配符,其代表着扩展. 当然bash中的扩展远远不止 *   一种,bash中一共有以下几种扩展:

  1. 波浪线扩展
  2. ? 字符扩展
  3. * 字符扩展
  4. 方括号扩展

下面就简单的介绍着几种扩展的用法

  1. 波浪线扩展 ~ 回到当前用户的主目录,我们经常的操作 cd ~ 进入当前用户的主目录
  2. ? 字符扩展 代表文件路径里面的任意单个字符,如果要代表多个字符就连续输入几个?即可, 举个例子可能你们就懂了 ,例如 ll upup???这个只能展示7个字符,可能是 upupor、upup.md等
  3. * 字符扩展,这个就不用多介绍了吧,通配符,匹配任意数量的字符,同样的拿 ll upup*举例,可能会匹配到 upupor、upupor.txt、upuporf23r3r3等等
  4. 方括号扩展[...]匹配当中的任意一个字符,这种扩张我经常会匹配我知道有哪些文件, 比如有 upupor1.txt upupor2.txt upupor5.txt 我如果要进行范围匹配就会使用 ll upupor[1-9].txt将文件匹配出来。当然这个也可以写多个,[up][or][20]匹配出uo2,up0等等。划重点:方括号扩展还有两种变体:[^...]和[!...]。它们表示匹配不在方括号里面的字符,这两种写法是等价的。比如,[^abc]或[!abc]表示匹配除了a、b、c以外的字符。
    前面说的upupor[1-9].txt中的[1-9]属于是范围扩展,匹配1-9之间的任意一个字符。

 

 

大括号扩展

变量扩展

子命令扩展

算术扩展


本作品系原创,采用《署名-非商业性使用-禁止演绎4.0 国际》许可协议.转载请说明出处
本文链接:https://www.upupor.com/u/20042411358563295232 复制分享

无评论内容,快来评论吧