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]