shell 脚本中的特殊含义(和去除转义)
在linux 的shell编程中,我们会经常用到各种各样的符号,比如 #.!. (), {} / 等等。这些字符在linux 系统中有着特殊的意义,如果我们在使用过程中不去对它做转义,那么结果可能不是我们想要的。
最近在项目中,编写 脚本时发现,! 如果不转义就会影响运行结果,脚本也会报错。下面罗列一些常用的需要转义的特殊字符,大家可以参考借鉴。
1. 特殊符号及其转义
案例1 : 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
常见的一些特殊字符
• * 任意个任意字符
• ? 一个任意字符
• [..] []中的任意一个字符,这里也类似于正则表达式,中括号内可以是具体的一些字符,如[abcd]也可以是用-指定的一个范围,如[a-d]
• # 注释
• (空格) 参数分隔符
• cmd 命令替换
• | 管道
• & 后台执行
• ; 命令分隔符(可以在同一行执行两个命令,用;分割)
• ~ 用户home目录
最后记得,任何时候,你不确定自己是不是转义对了,或者是特殊字符用对了,记得可以在命令前面加上echo,来看看真实执行的命令是怎么样的.
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。