特殊符号及其转义
大家都知道在一个shell命令是由命令名和它的参数组成的, 比如 cat testfile
, 其中cat是命令名, testfile是参数. shell将参数testfile传递给cat命令. 但是, 如果参数中含有特殊字符, 比如说*, *我们知道,是表示任意多个(包括0个)任意字符. 那么shell的工作方式是,它会对这些特殊字符进行预先处理, 然后再将处理的结果传给那个命令.
比如说,如果你的当前目录有file, file1, file2 三个文件, 那么当你执行cat file*的时候, shell会对参数部分file*进行预先处理, 由于*表示任意多个(包括0个)任意字符,那么处理的结果便是file file1 file2,接下来,shell再将这个结果, 即file file1 file2传递给cat命令, 所以你看到的结果跟直接执行cat file file1 file2是一样的, 那就是三个文件的内容都显示在命令行终端.
实际上,我们有办法看到shell处理的结果是什么,或者说真正执行的命令是什么样子的, 那就是在你要执行的命令之前加上echo.
比如说,在上面的目录下,你执行echo cat file*
, 那么你将看到
cat file file1, file2
上面那条命令,就是经过shell对参数的处理之后,真正执行的命令.
但是很多时候,我们希望传递给这些命令的,就是这些参数本身, 比如说,你当前目录下有一个文件的文件名就叫test*, 同时还有另外一个文件, test1. 而你只想看test*的内容, 这时候,如果你执行
cat test*
的话,那么test*和test1的内容都会被显示出来,这时候怎么办呢"")转义: 用双引号把参数括起来
在上面的例子中,这三种方法都是有效率的,也就是说,下面的三个命令都能达到目的:
cat test\*
cat 'test*'
cat “test*”
三种转义方法的范围
在shell中,特殊字符是非常多的,而以上提到的三种转义方法的范围也不尽相同,其中第一种方法的范围是最广的,几乎可以对所有的特殊字符进行转义,常见的用法是把\放在一个命令行的最后,这样一个很长的命令就可以分为两行或者更多行写. 比如
echo this is a very long line
将显示成
this is a very long line
在这里,其实就是\把换行符转义了,让它失去了换行的意思,同时阻止命令立刻执行.
第二种转义(单引号)的范围比第一种小,它可以阻止命令行立刻执行,但是它不能让换行符失去换行的意思. 所以
echo 'hello world'
将显示成
hello world
第三种转义(双引号)的范围又比第二种小,单引号可以转义"`", 而双引号不行. 在shell中, "`"中间的东西将被视为命令替换. shell对参数进行预先处理时,将把两个"`"中间的东西当做shell命令进行执行,再将执行结果替换掉他们本身. 举个例子:
echo today is `date`
将显示
today is Mon Oct 12 16:14:16 CST 2015
当然,具体的日期跟你执行这条命令的时期有关. 总之,意思你应该明白了. 再回到原来的问题,我们说单引号可以转义"`", 而双引号不行, 意思就是,单引号之间的"`"将失去它的特殊含义,而双引号之间的"`"将依然有特殊含义,所以
echo 'today is `date`'
将显示
today is `date`
而
echo “today is `date`”
将显示
today is Mon Oct 12 16:23:23 CST 2015
常见的一些特殊字符
*
任意个任意字符"color: #ff0000">总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 雨林唱片《赏》新曲+精选集SACD版[ISO][2.3G]
- 罗大佑与OK男女合唱团.1995-再会吧!素兰【音乐工厂】【WAV+CUE】
- 草蜢.1993-宝贝对不起(国)【宝丽金】【WAV+CUE】
- 杨培安.2009-抒·情(EP)【擎天娱乐】【WAV+CUE】
- 周慧敏《EndlessDream》[WAV+CUE]
- 彭芳《纯色角3》2007[WAV+CUE]
- 江志丰2008-今生为你[豪记][WAV+CUE]
- 罗大佑1994《恋曲2000》音乐工厂[WAV+CUE][1G]
- 群星《一首歌一个故事》赵英俊某些作品重唱企划[FLAC分轨][1G]
- 群星《网易云英文歌曲播放量TOP100》[MP3][1G]
- 方大同.2024-梦想家TheDreamer【赋音乐】【FLAC分轨】
- 李慧珍.2007-爱死了【华谊兄弟】【WAV+CUE】
- 王大文.2019-国际太空站【环球】【FLAC分轨】
- 群星《2022超好听的十倍音质网络歌曲(163)》U盘音乐[WAV分轨][1.1G]
- 童丽《啼笑姻缘》头版限量编号24K金碟[低速原抓WAV+CUE][1.1G]