重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
看看下面这个示例就能明白:
创新互联公司是一家集网站建设,米脂企业网站建设,米脂品牌网站建设,网站定制,米脂网站建设报价,网络营销,网络优化,米脂网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
在shell命令中有特殊含义,用于标准输出的重定向。此例中,后面未指明重定向的目标文件(直接敲回车,会将换行符newline认为是目标文件),所以报错。
在前面加上\,就可以对进行转义,即屏蔽其特殊含义,仅表示字符本身的字面含义。于是,此例中正确输出了 符号。
单引号:
可以说是所见即所得:即将单引号内的内容原样输出,或者描述为单引号里面看到的是什么就会输出什么。单引号''是全引用,被单引号括起的内容不管是常量还是变量者不会发生替换。
双引号:
把双引号内的内容输出出来;如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容来。双引号""是部分引用,被双引号括起的内容常量还是常量,变量则会发生替换,替换成变量内容。
不加引号:
不会将含有空格的字符串视为一个整体输出, 如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容来,如果字符串中带有空格等特殊字符,则不能完整的输出,需要改加双引号,一般连续的字符串,数字,路径等可以用。
使用规则:
一般常量用单引号''括起,如果含有变量则用双引号""括起。
最大不同:
单引号与双引号的最大不同在于双引号仍然可以保有变数的内容,但单引号内仅能是一般字
元,而不会有特殊符号
使用举例:
“”号里面遇到$,\等特殊字符会进行相应的变量替换
‘’号里面的所有字符都保持原样
对于字符串,两者相同
匹配模式也大致相同
但有一些区别非常容易混淆
grep "$a" file #引用变量a,查找变量a的值
grep '$a' file #查找“$a”字符串
grep "\\" file #grep: Trailing backslash(不知原因)
grep '\\' file #查找‘\’字符
1、$ 美元符
2、\ 反斜杠
3、` 反引号
4、" 双引号
这四个字符在双引号中是具有特殊含义的,其他都没有,而单引号使所有字符都失去特殊含义
如果用双引号,查找一个\,就应该用四个\:
grep "\\\\" file 这样就对了,这样等同于:
grep '\\' file
第一条命令shell把四个\,转义成2个\传递给grep,grep再把2个\转义成一个\查找
第二条命令shell没转义,直接把2个\传递给grep,grep再把2个\转义成一个\查找
其实grep执行的是相同的命令
Linux命令行中输入特殊字符,比如回车、$、!、空格、单引号等,需要利用反斜杠(\)转义特殊字符,就是把反斜杠\加在特殊字符的前面,反斜杠也被称为转义字符。
表示按照字面意思引用所有字符。例如你的用户名叫做aaa,则
echo
'username
$USER'
将显示
username$USER
这13个字符(字面意思),而
echo
username$USER
将显示
usernameaaa(经过了元字符$的转换)。
单引号是元字符(带有特殊含义的字符)的一种,表示强引用。与之相对,双引号
"
表示弱引用,它会保留
美元符号$
反斜线\
反引号`
这三个元字符的特殊含义,所以
echo
"username$USER"
仍然会得到
usernameaaa。
脚本中的命令提交给shell逐条处理,而shell在处理这些命令时,需要元字符实现更丰富的功能。例如上面例子中的
$
一般用来获得变量的值;但shell会立即解释元字符(例如将$USER出现的地方,直接替换为
aaa),所以当我们需要保留这些元字符时,要用到单引号。
单引号:所见即所得,即将单引号内的内容原样输出,或者描述为单引号里面看到的是什么就输出什么。
双引号:把双引号里面的内容给输出出来,如果内容中有命令、变量等,会先把,变来那个、命令解析出结果,然后输出最终内容。
双引号内的命令或者变量写法’命令或变量’或$(命令或变量)
无引号:把内容输出出来,可能不会键含有空格的字符串,视为一个整体输出,如果内容中有命令、变量等,会先把变量、命令解析出来,然后输出最终内容,如果字符串中带有空格等特殊字符,则不能完整输出,需要改加双引号。一般连续的字符串,数字,路径等可以用,不过最好用双引号,替代之。
如果有什么不懂的话可以去看看《Linux就该这么学》这本书,非常适合新手学习Linux。
可以使用sed命令,删除文件中所有的引号等价于将文件中所有的引号替换为空字符串。\x0d\x0ased命令替换某个字符串为另一字符串的格式为:\x0d\x0ased -i 's/要替换的字符串/新的字符串/g' 文件名\x0d\x0a-i选项表示直接修改读取的档案内容,而不是由屏幕输出。\x0d\x0a用法示例:\x0d\x0a替换zhidao.txt文件中所有的双引号为空格\x0d\x0ased -i 's/"//g' zhidao.txt