Linux命令行中输入特殊字符,比如回车、$、!、空格、单引号等,需要利用反斜杠(\)转义特殊字符,就是把反斜杠\加在特殊字符的前面,反斜杠也被称为转义字符。
② linux的双引号里的单引号
个人理解,单引号属于强类型,引号内的内容就是文本,不支持执行LINUX命令,变量引用。双引号支持变量引用如 echo
"$name"将会打印name变量的值,单引号直接打印的就是$name字符串。望采纳
③ 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控制字符单独都具有控制功能,因此它们不是转义字符。
④ linux中双引号单引号和不加引号的区别吗
双引号里可以识别变量
单引号就是纯字符串
# i=111111
# echo "$i"
111111
# echo '$i'
$i
# echo $i bash
111111 bash
但是不加引号,有时候在脚本里需要区分命令和字符串,就必须加引号,养成良好习惯
⑤ 转义字符具体怎么用用在哪些地方
给你转了一段有用法总结:
php中的转义字符用法总结
\是一个转义符,跟在\后面的第一个字符将变的没有意义或特殊意义,什么是变的没有意义呢?比如'是字符串的定界符,\'的话就使它失去了定界符的意义了,变为普通的'。比如你可以通过echo '\'';输出一个单引号',同时转义字符\也不会显示。
转义字符\只在在后来是特殊符号时才有转义的功能,而其它的时候,\也只是一个普通的字符。
这些所谓有特殊的符号包括:
1、'也就是间引号。
2、"也就是双引号。
3、$如果在双引号内,它就算是特殊字符,比如echo "$aa";不会输出$aa的值,输出的是$aa。在单引号里它不算特殊字符。
4、\n表示一个换行,在windows下看起来和回车一样的,linux等其他系统则不是,一般上windows下按回车键的值等于\r\n,就是回车+换行,而linux只是换行,就是\n。
5、\r表示回车。
6、\t表示水平制表符,就是键盘上的Tab那个按键。
7、\\表示一个\。
7、\[0-7]{1,3},这是个正则的描述,就是表示1-3位的8进制数字,8进制不懂?说简单点:表示0-7的数字,1-3位数,打个比方0,7,10,777,注意,不会出现8以上的数字,最大就是777。
8、\x[0-9A-Fa-f]{1,2},也是个正则的描述,表示1-2位的16进制数字,8进制不懂得话,16进制也是不懂的,说简单点就是0-9,a-f(不分大小写)的1-2位数,如1,10,F,1a,FF,最大值就是FF了。
⑥ 总结linux替换字符串的几种方法
一)通过vi编辑器来替换。
vi/vim 中可以使用 :s 命令来替换字符串。
:s/well/good/ 替换当前行第一个 well 为 good
:s/well/good/g 替换当前行所有 well 为 good
:n,$s/well/good/ 替换第 n 行开始到最后一行中每一行的第一个 well 为 good
:n,$s/well/good/g 替换第 n 行开始到最后一行中每一行所有 well 为 good
n 为数字,若 n 为 .,表示从当前行开始到最后一行
:%s/well/good/(等同于 :g/well/s//good/) 替换每一行的第一个 well 为 good
:%s/well/good/g(等同于 :g/well/s//good/g) 替换每一行中所有 well 为 good
可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
:s#well/#good/# 替换当前行第一个 well/ 为 good/
:%s#/usr/bin#/bin#g 可以把文件中所有路径/usr/bin换成/bin
(二)直接替换文件中的字符串。(此法不用打开文件即可替换字符串,而且可以批量替换多个文件。)
1.perl命令替换,参数含义如下:
-a 自动分隔模式,用空格分隔$_并保存到@F中。相当于@F = split ”。分隔符可以使用-F参数指定
-F 指定-a的分隔符,可以使用正则表达式
-e 执行指定的脚本。
-i<扩展名> 原地替换文件,并将旧文件用指定的扩展名备份。不指定扩展名则不备份。
-l 对输入内容自动chomp,对输出内容自动添加换行
-n 自动循环,相当于 while(<>) { 脚本; }
-p 自动循环+自动输出,相当于 while(<>) { 脚本; print; }
用法示例:
perl -p -i.bak -e 's/foo/bar/g' *.c
将所有C程序中的foo替换成bar,旧文件备份成.bak
perl -p -i -e "s/shan/hua/g" ./lishan.txt ./lishan.txt.bak
将当前文件夹下lishan.txt和lishan.txt.bak中的“shan”都替换为“hua”
perl -i.bak -pe 's/(d+)/ 1 + $1 /ge' file1 file2
将每个文件中出现的数值都加一
2.sed命令下批量替换文件内容
格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径` 文件名
-i 表示inplace edit,就地修改文件
-r 表示搜索子目录
-l 表示输出匹配的文件名
s表示替换,d表示删除
示例:sed -i "s/shan/hua/g" lishan.txt
把当前目录下lishan.txt里的shan都替换为hua 各个Linux详细命令介绍及应用可如下进行查找
⑦ linux变量设置当中,如 myname='$name its me'使用单引号, 变量$name将失去原有变量内容。
在编写shell脚本网页链接的时候经常会用到引号,有些时候却老是忘记单引号和双引号之间的区别,
所以就整理一下供以后脑子不好使了的时候前来复习一下。首先说下他们的共同点: 好像就只有
一个,就是它们都可以用来界定一个字符串,这个没什么好解释的,真正需要记住的是它们区别,
所以经过整理后,它们的区别主要包括:
1)、单引号属于强引用,它会忽略所有被引起来的字符的特殊处理,被引用起来的字符会被原封不动的使用,唯一需要注意的点是不允许引用自身;
2)、双引号属于弱引用,它会对一些被引起来的字符进行特殊处理,主要包括以下情况:
1:$加变量名可以取变量的值 ,比如:
[root@localhost ~]# echo '$PWD'
$PWD
[root@localhost ~]# echo "$PWD"
/root
2:反引号和$()引起来的字符会被当做命令执行后替换原来的字符,比如:
[root@localhost ~]# echo '$(echo hello world)'
$(echo hello world)
[root@localhost ~]# echo "$(echo hello world)"
hello world
[root@localhost ~]# echo '`echo hello world`'
`echo hello world`
[root@localhost ~]# echo "`echo hello world`"
hello world
3:当需要使用字符($ ` " )时必须进行转义,也就是在前面加 ;
[root@localhost ~]# echo '$ ` " '
$ ` "
[root@localhost ~]# echo "$ ` " \"
$ ` "
⑧ 遇到特殊字符如何转义
首先登录进Linux系统,然后右键单击选择Open in Terminal选项,如下图所示
综上所述,在Linux中对特殊字符进行转义主要用了反斜线,并且不要子啊单引号里面使用
⑨ shell中单引号怎么转义
在 UNIX/Linux 系统中,关于在 SHELL 编程中的有些特殊符号,需要进行转义,转义符号是英文的 '\',它可以对如下特殊符号进行转义,例如:
\" (双引号)
\' (单引号)
\\ (代表一个西文的反斜杠: \)
等等。
⑩ linux脚本命令中加单引号什么意思
表示按照字面意思引用所有字符。例如你的用户名叫做aaa,则
echo
'username
$USER'
将显示
username$USER
这13个字符(字面意思),而
echo
username$USER
将显示
usernameaaa(经过了元字符$的转换)。
单引号是元字符(带有特殊含义的字符)的一种,表示强引用。与之相对,双引号
"
表示弱引用,它会保留
美元符号$
反斜线\
反引号`
这三个元字符的特殊含义,所以
echo
"username$USER"
仍然会得到
usernameaaa。
脚本中的命令提交给shell逐条处理,而shell在处理这些命令时,需要元字符实现更丰富的功能。例如上面例子中的
$
一般用来获得变量的值;但shell会立即解释元字符(例如将$USER出现的地方,直接替换为
aaa),所以当我们需要保留这些元字符时,要用到单引号。