字符展开:
echo *
路径名展开:
echo D*
隐藏文件路径名展开 ls -d .[!.]?*
波浪线展开:
echo ~
算术表达式展开:
$((expression))
花括号展开:
echo Number_{1..5}
最常见的应用,创建一系列的文件或目录列表。
参数展开:
echo $USER
printenv | less
命令展开:
把一个命令的输出作为一个展开模式
echo $(ls)
ls -l $(which cp)
引用:
shell 提供了一种 叫做引用的机制,来有选择地禁止不需要的展开。
双引号:
如果你把文本放在双引号中, shell 使用的特殊字符,都失去它们的特殊含义,被当作普通字符来看待。单词分割被禁止
在双引号中,参数展开、算术表达式展开和命令替换仍然有效
单引号:
禁止所有的展开
转义字符:
注意在单引号中,反斜杠失去它的特殊含义,它 被看作普通字符。
使用转义字符来消除文件名中一个字符的特殊含义
反斜杠除了作为转义字符外,也可以构成一种表示法,来代表某种 特殊字符
随着我们继续学习 shell,你会发现使用展开和引用的频率逐渐多起来,所以能够很好的 理解它们的工作方式很有意义。事实上,可以这样说,它们是学习 shell 的最重要的主题。