本篇文章给大家分享的是有关linux shell转义符有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
/t
表示水平的制表符
/v
表示垂直的制表符
/b
表示后退符
/a
表示“警告”(蜂鸣或是闪动)
/0xx
翻译成ASCII码为八进制0xx所表示的字符
/"
表示引号(")的字面意思
1 echo "Hello" # Hello 2 echo "/"Hello/", he said." # "Hello", he said. |
/$
表示美元符($)的字面意思(如果在/$跟上变量名将不会引用变量的值)
1 echo "/$variable01" # 输出是$variable01 |
//
表示反斜杠(/)的字面意思
1 echo "//" # 输出是/ 2 3 # 然而 . . . 4 5 echo "/" # 在命令行,这句将会打印SP2变量值(译者注:变量SP2是输入未完成提示符),并要求你继续输入.. 6 # 在脚本文件里, 这句会出错. |
反斜杠的作用要看它是否是自我转义,被引用,或出现在命令替换结构或是在here document里. 1 # 简单的转义和引用 一个字符串赋给变量时里面的组成部分可能会被转义,但如果单独一个转义字符(/)是不能赋给变量的。 1 variable=/ |
转义一个空格可以防止一个字符串参数被分割成多个命令行参数。
1 file_list="/bin/cat /bin/gzip /bin/more /usr/bin/less /usr/bin/emacs-20.7" 2 # 文件列表作为参数传递给命令. 3 4 # 再加两个参数给命令ls,一同列出文件信息. 5 ls -l /usr/X11R6/bin/xsetroot /sbin/dump $file_list 6 7 echo "-------------------------------------------------------------------------" 8 9 # 如果我们转义上面的一对空格会发生什么? 10 ls -l /usr/X11R6/bin/xsetroot/ /sbin/dump/ $file_list 11 # 出错: 开头的三个文件名被连成一个文件名并传递给了命令'ls -l' 12 # 因为两个转义字符禁止了空格分割参数的作用。 |
转义符也提供了写一个多行命令的手段。一般地,每个单独的行有一个不同的命令,而在一行末尾的转义符转义新行符,命令序列则由下一行继续。
1 (cd /source/directory && tar cf - . ) | / 2 (cd /dest/directory && tar xpvf -) 3 # 把Alan Cox目录树全部复制到另外一个目录里, 4 # 但分为两行可以增加可读性. 5 6 # 你也可以用下面的命令达到一样的效果: 7 tar cf - -C /source/directory . | 8 tar xpvf - -C /dest/directory 9 # 看看下面的注释. 10 # (多谢,Stéphane Chazelas.) |
如果一个脚本行用一个管道线"|"结束行尾,后面可以再跟一个不必一定要的转义符"/"。然而,好的编程习惯最好加上一个转义符“/”。 |
1 echo "foo 2 bar" 3 #foo 4 #bar 5 6 echo 7 8 echo 'foo 9 bar' # 没什么不同. 10 #foo 11 #bar 12 13 echo 14 15 echo foo/ 16 bar # 新行符被转义. 17 #foobar 18 19 echo 20 21 echo "foo/ 22 bar" # 还是一样,字符/在弱引用中还是被解释为转义字符 23 #foobar 24 25 echo 26 27 echo 'foo/ 28 bar' # 由于转义符"/"在强引用符里,所以只能解释为字面上的意思 29 #foo/ 30 #bar 31 32 # 由Stéphane Chazelas提示写成的例子.
以上就是linux shell转义符有哪些,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/199651.html