通配符

优质
小牛编辑
134浏览
2023-12-01

“帮助系统”一节

脱字符

Shell 中的一些功能是通过特殊符号作为控制字符来实现的,上面已经介绍了很多了。这产生一个问题,如果一个文件名中,刚好包含了这些字符,比如 ; ,就很难对它进行操作。使用 less 浏览这个文件

less ;xxx    

less 会很快返回一个错误信息,因为并没有一个文件名作为操作对象。接着,Shell 会报告,系统中没有 xxx 这个命令。

这是因为 Shell 将文件名中的 ; 解析为按顺序执行命令。

或者您的文件名以空白起始,而在 Shell 中,无论多少个空格,都将被解析为一个分隔符。您甚至不能使用命令重命名此文件。

这个时候就要用到脱字符 \ 了,它能够将一个具有特殊涵义的字符转换普通字符。上面的两个任务,可以在文件名中每个特殊字符前加一个 \ ,像这样

less \;xxx
less \ \xxx
less \;\ \&\xxx    
[提示]提示
也可以使用 " 将文件名括起来,例如 less "; &xxx" ,在很多情况下,这样甚至更方便。

脱字符在 Shell 中也可以作为换行符,在一个命令的末尾添加一个 \ ,然后回车,在下一行继续输入命令剩余的部分,将一个命令拆分为多行且不影响它的执行(如果执行一个很长的命令,请将它拆分为多行以便于阅读)

事实上换行符也符合脱字符的定义。回车键有两个涵义,一个是 执行 (Enter),另一个 换行 (折线箭头)。在 Shell 中它作为控制字符 执行 ,使用脱字符后,它便代表排版字符 换行 了。