linux转义引号
A. linux中的双引号的作用
在Linux中双引号可以取消分隔符的转义,空格算不算?能不能举个例子??
还有,find "/home/tmp" -name "*.*" -atime +10 -ok rm -f {} ; 对于这条shell语句中的"*.*",不是说双引号取消通配符的作用吗,那么它不就成了寻找*.* 这个文件了吗?
双引号里可以套变量,单引号里不能套变量。
Linux的三中引号:双引号 " " ,单引号 ' ', 还有就是反引号 ` `
单引号和双引号的作用是差不多的,在里面的结果都是字符串,比如
a="date" ,b='date' 这两个是一样的。
反引号的作用就不一样了,反引号是把里面的当作一个命令来执行,比如
c=`date`
当 echo $a $b $c的时候 结果就分别是
date date 2014-11-1 20:33
(1)linux转义引号扩展阅读:
Linux操作系统是基于UNIX操作系统发展而来的一种克隆系统,它诞生于1991 年的 [Linux桌面] 10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。
B. 如何进入linux下有空格的文件夹,转义引号都没用
有时候需要创建带有空格的文件夹,虽然这不是一个好的习惯,但是偶尔会遇到。用的最多的是很多时候需要进入带有空格的文件夹,如"a b"是一个文件夹名。 创建:mkdir "a b" mkdir 'a b' mkdir a\ b 进入:cd "a b" cd 'a b' cd a\ b 由上可见,需要在带有空格的文件夹名前面加上引号(单引号或者双引号),另一种方法是在空格前面加\,\的意思是后面还有字符的意思。 切记,直接输名字是无法操作成功的,如已经创建了文件夹"a b",直接终端输入cd a b会出现没有a文件夹的错误。
C. linux下正则匹配带引号和不带引号的区别
应该是引号里面的,shell 不转义。没引号的,shell 先自己转义一下。
所以,有的时候你可能会看到奇葩的 \\\x 的命令行,这个其实是两次转义。\\ 是让 shell 转义为 \ ,后面的 \x 是让 shell 转义 x 。这样命令收到的参数,就成了 \x 。(x 可以是很多东西,我以前遇到过 " ,也就是双引号)。
典型的 { } 就是 shell 会进行处理的东西,需要转义或者用引号括起来防止处理。但是 [ ] 我记得 shell 好像没有用处吧?
另外再说一下 shell 的处理, ' 里面的不转义(不是全部,好像是只转义一些内容)," 里面的依然会转义。
D. linux 命令行下怎么输入单引号
Linux命令行中输入特殊字符,比如回车、$、!、空格、单引号等,需要利用反斜杠(\)转义特殊字符,就是把反斜杠\加在特殊字符的前面,反斜杠也被称为转义字符。
E. Linux shell 中单引号字符串里面有单引号字符怎么办
Linux shell 中单引号字符串里面有单引号字符解决:
$echo"mocha。reporter('spec')"|sed"s/'spec'/'json'/"
mocha.reporter('json')
有单引号的情况就用双引号呗
$echo"mocha.reporter('spec')"|sed$'s/'spec'/'json'/'
mocha.reporter('json')
或者也可以这样、加个$让bash转义
控制字符
转义字符不属于控制字符;控制字符也不属于转义字符。如果控制字符的定义是非图形的字符,或者对输出设备(打印机、文本终端)有特殊意义的字符,那么针对这些设备的转义字符也是控制字符。但是程序设计用的转义字符是图形字符,因此它们不是控制字符。相反地,大多数ASCII控制字符单独都具有控制功能,因此它们不是转义字符。
F. 问一个Linux命令"\>",这个引号中的是什么意思
看看下面这个示例就能明白:
> 在shell命令中有特殊含义,用于标准输出的重定向。此例中,后面未指明重定向的目标文件(直接敲回车,会将换行符newline认为是目标文件),所以报错。
在>前面加上,就可以对>进行转义,即屏蔽其特殊含义,仅表示字符本身的字面含义。于是,此例中正确输出了 > 符号。
G. linux vi中,双引号需要转义吗
假如你的文件是以“.php”为结尾的话,正常情况下是不需要转义符的。但如果你是在一段已经有双引号("")包围的代码中间插入如:类似的代码,确实有可能需要转义符。
H. linux下打入双引号为什么要打两次
一般使用C语言式的字符串转义,用\"表示一个",用\\表示\,但具体还要看运行环境,如果不支持那就用单引号做最外层引号,里面用双引号做内容
I. Linux下配置文件中参数带引号和不带引号的区别
单引号:
可以说是所见即所得:即将单引号内的内容原样输出,或者描述为单引号里面看到的是什么就会输出什么。单引号''是全引用,被单引号括起的内容不管是常量还是变量者不会发生替换。
双引号:
把双引号内的内容输出出来;如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容来。双引号""是部分引用,被双引号括起的内容常量还是常量,变量则会发生替换,替换成变量内容。
不加引号:
不会将含有空格的字符串视为一个整体输出, 如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容来,如果字符串中带有空格等特殊字符,则不能完整的输出,需要改加双引号,一般连续的字符串,数字,路径等可以用。
使用规则:
一般常量用单引号''括起,如果含有变量则用双引号""括起。
最大不同:
单引号与双引号的最大不同在于双引号仍然可以保有变数的内容,但单引号内仅能是一般字
元,而不会有特殊符号
使用举例:
“”号里面遇到$,\等特殊字符会进行相应的变量替换
‘’号里面的所有字符都保持原样
对于字符串,两者相同
匹配模式也大致相同
但有一些区别非常容易混淆
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执行的是相同的命令
J. linux中双引号单引号和不加引号的区别吗
双引号里可以识别变量
单引号就是纯字符串
# i=111111
# echo "$i"
111111
# echo '$i'
$i
# echo $i bash
111111 bash
但是不加引号,有时候在脚本里需要区分命令和字符串,就必须加引号,养成良好习惯