shell之转义字符\

转义字符
反斜线(\)是bash的转义字符,也叫逃逸字符或者转义字符。
我们想让 通配符,或者元字符变成普通字符,不需要使用它。那么这里我们就需要用到转义符了
实例:
[root@sande-lvs01 ~]# echo 9 * 9 = 81
9 1.txt anaconda-ks.cfg install.log install.log.syslog install.log.tar install.log.tar.zip zabbix-agent-3.0.4-1.el6.x86_64.rpm zabbix-agent-3.0.4-1.el6.x86_64.rpm.1 zabbix_agent.sh 9 = 81
[root@sande-lvs01 ~]# echo 9 '*' 9
9 * 9
[root@sande-lvs01 ~]# echo 9 '*' 9 = 81
9 * 9 = 81
[root@sande-lvs01 ~]# echo '9 * 9 = 81'
9 * 9 = 81
[root@sande-lvs01 ~]# echo 9 * 9 = 81
9 1.txt anaconda-ks.cfg install.log install.log.syslog install.log.tar install.log.tar.zip zabbix-agent-3.0.4-1.el6.x86_64.rpm zabbix-agent-3.0.4-1.el6.x86_64.rpm.1 zabbix_agent.sh 9 = 81
[root@sande-lvs01 ~]# echo 9 \* 9 = 81
9 * 9 = 81
[root@sande-lvs01 ~]#

特殊实例:
在一对引号中不允许出现单引号,转义字符也不行
[root@sande-lvs01 ~]# echo 'it is wolf's book'
> ^C
[root@sande-lvs01 ~]# echo 'it is wolf\'s book'
> ^C
[root@sande-lvs01 ~]# echo 'it is wolfs book'
it is wolfs book
[root@sande-lvs01 ~]# 
以上,bash会认为命令输入为完成,因为第一个引号和第二个引号自动配成一对,最后一个单引号在没得配的情况下,bash认为输入尚未完成,出现>等待命令继续输入。
解决办法
[root@sande-lvs01 ~]# echo "it is wolf's book"
it is wolf's book
[root@sande-lvs01 ~]# echo it is wolf\'s book
it is wolf's book
[root@sande-lvs01 ~]# echo 'it is wolf'\''s book.'
it is wolf's book.

一般特殊符号要出现必须用转义字符
\' \" \* \? \\ \~ \` \! \# \$ \& \( \) \| \[ \] \{ \} \; \< \> \^

续行符号
转义字符唯一的里外是:\的后方,若是接续换行(不可见字符),即先输入\,再敲回车。
[root@sande-lvs01 ~]# echo "wolf \
> wolf"
wolf wolf
[root@sande-lvs01 ~]# 

补充一下:
1、其实单引号也是转义字符---‘’---硬转义,引号内部所有的shell元字符、通配符、都会被关掉。
注意:硬转义中不允许出现‘(单引号,鸡上面的例子)
2、双引号:软转义,引号内部只允许出现特定的shell元字符,$用于参与代换 用于代替命令。
3、\后跟的是非元字符,与没有加\的效果一样
eg:echo '\A' 和echo "\A" 的输出都是 \A  而echo \A 的输出却是A
[root@sande-lvs01 ~]# echo '\A'
\A
[root@sande-lvs01 ~]# echo "\A" 
\A
[root@sande-lvs01 ~]# echo \A 
A
  • 10
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 在shell脚本中,有些字符具有特殊的含义,例如$、*、?、[、]、{、}、|、\等。如果需要在脚本中使用这些字符本身的含义,就需要使用转义字符来表示。常见的转义字符包括: 1. \:表示转义字符本身,例如\*表示*字符本身的含义。 2. $:表示变量,如果需要表示$字符本身的含义,需要使用\$。 3. ":表示字符串,如果需要表示"字符本身的含义,需要使用\"。 4. ':表示字符串,如果需要表示'字符本身的含义,需要使用\'。 5. \n:表示换行符。 6. \t:表示制表符。 7. \\:表示反斜杠本身的含义。 需要注意的是,在使用转义字符时,需要根据具体情况进行选择,以确保脚本的正确性。 ### 回答2: Shell脚本是在Linux和其他类Unix系统中使用的一种编程语言,用于执行在命令行下执行各种任务。在Shell脚本中,经常会用到转义字符,以对特殊字符进行转义,以方便正确使用这些字符。常见的转义字符包括反斜杠(\)、双引号("")、单引号('')、美元符号($)等。 首先,反斜杠字符在Shell脚本中表示转义字符,用于将其后的一个字符转义为一个特定的含义。例如,\n表示换行符,\t表示制表符,\r表示回车符等。 其次,双引号字符用于定义包含字符串。在双引号中的所有特殊字符都可以不使用转义字符,如下所示: ``` echo "Hello World!\n" ``` 运行上面的脚本,输出结果为: ``` Hello World! ``` 而不是将\n作为纯文本输出。 但是,单引号不支持转义字符。在单引号中的所有特殊字符都将被当作普通字符处理,如下所示: ``` echo 'Hello World!\n' ``` 输出结果为: ``` Hello World!\n ``` 美元符号用于变量扩展,可以将其后的变量名解析为其实际的值。如果想要在脚本中输出美元符号本身,则需要使用转义字符\$,如下所示: ``` echo "The cost is \$10." ``` 输出结果为: ``` The cost is $10. ``` 此外,还有其他一些转义字符,如\0表示空字符,\b表示退格,\a表示警报等。在编写Shell脚本时,需要注意使用转义字符,以便正确运行脚本,并避免出现错误。 ### 回答3: 在shell脚本中,有些字符被用来表示特殊含义,如引号、通配符、变量等,如果需要在脚本中使用这些字符的实际意义,需要使用转义字符来表示。 在shell脚本中,反斜线(\)被用作转义字符。当反斜线遇到特定字符时,就会将这些特定字符的含义转义成字符本身的含义,这样就能够在脚本中使用它们的实际意义了。 例如,如果需要在脚本中使用引号,可以使用转义字符\将其转义。如下所示: ``` echo "\"Hello, world!\"" ``` 输出的结果为: ``` "Hello, world!" ``` 同样地,如果需要在脚本中使用反斜线本身,也需要使用转义字符。如下所示: ``` echo "\\" ``` 输出的结果为: ``` \ ``` 另外,在使用转义字符时需要注意,在一些情况下需要使用多个转义字符来表示一个特殊字符的实际含义。如在正则表达式中,需要使用两个反斜线来表示一个反斜线字符。 总之,使用转义字符可以使得shell脚本中的字符按照其实际含义被解释和处理,因此熟练掌握转义字符的使用是编写有效shell脚本的关键。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值