参考网站:http://billie66.github.io/TLCL/book/chap08.html
1.字符“*”--展开
[me@linuxbox ~]$ echo *
Desktop Documents ls-output.txt Music Pictures Public Templates Videos
注:这个”*“字符意味着匹配文件名中的任意字符,就是 shell 在 echo 命 令被执行前把”*“展开成了另外的东西(在这里,就是在当前工作目录下的文件名字)。 当回车键被按下时,shell 在命令被执行前在命令行上自动展开任何符合条件的字符, 所以 echo 命令的实际参数并不是”*“,而是它展开后的结果。
2.通配符所依赖的工作机制叫做路径名展开,给定一个家目录,它看起来像这样:
[me@linuxbox ~]$ ls
Desktop ls-output.txt Pictures Templates
....
我们能够执行以下的展开:
[me@linuxbox ~]$ echo D*
Desktop Documents
[me@linuxbox ~]$ echo *s
Documents Pictures Templates Videos
查看家目录之外的目录:
[me@linuxbox ~]$ echo /usr/*/share
/usr/kerberos/share /usr/local/share
3.算术表达式
[me@linuxbox ~]$ echo $(( + ))
[me@linuxbox ~]$ echo $(((**) * ))
这是一个使用除法和取余操作符的例子。注意整数除法的结果:
[me@linuxbox ~]$ echo Five divided by two equals $((/))
Five divided by two equals
[me@linuxbox ~]$ echo with $((%)) left over.
with left over.
4.花括号展示
[me@linuxbox ~]$ echo Front-{A,B,C}-Back
Front-A-Back Front-B-Back Front-C-Back
[me@linuxbox ~]$ echo Number_{..}
Number_1 Number_2 Number_3 Number_4 Number_5
一系列以倒序排列的字母:
[me@linuxbox ~]$ echo {Z..A}
Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
那么这对什么有好处呢?最常见的应用是,创建一系列的文件或目录列表。例如, 如果我们是摄影师,有大量的相片。我们想把这些相片按年月先后组织起来。首先, 我们要创建一系列以数值”年-月”形式命名的目录。通过这种方式,可以使目录名按照 年代顺序排列。我们可以手动键入整个目录列表,但是工作量太大了,并且易于出错。 反之,我们可以这样做:
[me@linuxbox ~]$ mkdir Pics
[me@linuxbox ~]$ cd Pics
[me@linuxbox Pics]$ mkdir {..}-{..} {..}-{..}
[me@linuxbox Pics]$ ls
- - - - - -
- - - - - -
- - - - - -
- - - - - -
- - - - - -
- - - - - -
5.双引号
[me@linuxbox ~]$ ls -l two words.txt
ls: cannot access two: No such file or directory
ls: cannot access words.txt: No such file or directory
[me@linuxbox ~]$ ls -l "two words.txt"
-rw-rw-r-- me me -- : two words.txt
7.转义字符
[me@linuxbox ~]$ echo "The balance for user $USER is: \$5.00"
The balance for user me is: $5.00
为了允许反斜杠字符出现,输入”\“来转义。注意在单引号中,反斜杠失去它的特殊含义,它 被看作普通字符。