Linux学习-shell元字符

时间:2021-03-31 22:46:57

正在学习Linux,记录一下学习历程。参考《Unix&Linux大学教程》(幽默感+事无巨细),进行了精简摘要和总结。Linux学习-shell元字符

元字符

花括号扩展  
{ } 生成一种字符模式
命令行  
| 创建一个管道线
< 重定向输入
> 重定向输出
( ) 在子shell中运行命令
# 注释的开头,忽略该行
; 分隔多条命令
' 命令替换
文件名扩展  
插入home目录的名称
? 匹配任意一个字符
[ ] 与一组字符中的字符匹配
* 匹配0个或多个字符
历史列表  
! 事件标记
作业控制  
& 在后台运行命令
引用  
\ 下一个字符转义
取消所以的替换
取消大部分的替换
变量  
{ } 确定变量名称的界限
$ 变量值的替换
空白符  
<return> 标记一行的结束
<tab> 在命令行中分隔单词
<space> 在命令行中分隔单词

引用和转义

引用:按字面的含义使用元字符。

转义:由一种模式改变到令一种模式。

使用\引用单个字符,转义了这个字符。(强引用)

使用' '引用一串字符,所有的元字符都被解释为字面含义。(强引用)

使用“ ”引用一串字符,出$,',\保留特殊含义外,其余元字符被解释为字面含义。(弱引用)


强引用&弱引用
主要讨论单引号和双引号的使用差别。

强引用(单引号),在处理所在命令时,没有字符拥有特殊含义,所以字符原样保留。元字符可能在之后被使用。

弱引用(双引号),保留含义的元字符在当前命令就进行使用。

以元字符$为例,$变量名是表示变量的值。

使用单引号,防止$被解释,直至需要它,其后的变量值在使用前并不确定。

使用双引号,$立即被解释,其后的变量值在除了当前命令时就已经确定。

使用依据:变量的值在使用之前是否会变化?


Linux学习-shell元字符:有时候可能希望不按管道使用|,正如Freud(弗洛伊德)曾经说过的:有时候竖线就是一个竖线。