inushome 发表于 2018-8-29 14:11:37

shell学习3-名称 通配符 参数展开 引用

  linux中是区分大小写的。

[*]  文件名:可以使用除了/之外的任意字符,总长度不超过255.
[*]  变量名:可以使用字母、数字、下划线 ,不能以数字开头。
  bash中的匹配字符

[*]  * 任意多个任意字符
[*]  ? 单个任意字符
[*]  [ ] 匹配里面的任意单个字符
   匹配 a 或 b或 c
   同上
   匹配a-z的任意单个字符
   匹配0-9的任意单个字符
  [[:upper:]] 大写字母
  [[:lower:]] 小写字母
  [[:alpha:]] 所有字母
  [[:digit:]] 所有数字
  [[:alnum:]] 所有字母数字
  [[:space:]] 空格
  [[:punct:]] 标点符号
  提示:[:digit:] 相当于 0-9,使用的时候[[:digit:]]===   ,其他同理。
  4.[^...] 匹配给定范围以外的任意单个字符
  bash 中的参数展开(一般用在命令中),相当于多个参数分别执行。
  cmd {a,b,c}=== cmd a;cmd b;cmd c
  cmd{a,b,c}_{x,y,z} === cmd a_x;cmd a_y;   cmd a_z;   cmd b_x;   cmd b_y;   cmd b_z;cmd c_x;cmd c_y;   cmd c_z
  bash中的引用

[*]  单引号 '': 强引用,其中的任意字符都当做字符来看待。
[*]  双引号"":    弱引用,里面的变量将当做变量使用,一般字符仍是一般字符。
[*]  命令符``或$():    命令引用,里面只能放命令,引用的是命令的执行结果。
  对比:
  ls /dev/sd   列出sd开头的,第三个字母是abc。。。z的文件
  ls /dev/sd{a..z}相当于 ls /dev/sdals/dev/sdb......ls/dev/sdz   相当于多个命令。

页: [1]
查看完整版本: shell学习3-名称 通配符 参数展开 引用