louyaoluan 发表于 2018-8-26 07:48:54

shell一些转义字符的表示的特殊意思

和echo,sed连用时:  \n
  表示新行
  \r
  表示回车
  \t
  表示水平的制表符
  \v
  表示垂直的制表符
  \b
  表示后退符
  \a
  表示“警告”(蜂鸣或是闪动)
  \0xx
  翻译成ASCII码为八进制0xx所表示的字符
  例子 5-2. 转义字符
  1 #!/bin/bash
  2 # escaped.sh: 转义字符
  3
  4 echo; echo
  5
  6 echo "\v\v\v\v"      # 打印出 \v\v\v\v literally.
  7 # 用带着选项-e的'echo'会打印出转义字符串.
  8 echo "============="
  9 echo "VERTICAL TABS"
  10 echo -e "\v\v\v\v"   # 打印四个垂直的制表符.
  11 echo "=============="
  12
  13 echo "QUOTATION MARK"
  14 echo -e "\042"       # 打印出字符" (引号, 它的八进制ASCII码为42).
  15 echo "=============="
  16
  17 # 当使用像$'\X'的结构时,-e选项是多余的.
  18 echo; echo "NEWLINE AND BEEP"
  19 echo $'\n'         # 新行.
  20 echo $'\a'         # 警告 (蜂鸣).
  21
  22 echo "==============="
  23 echo "QUOTATION MARKS"
  24 # 版本2开始Bash已经允许使用$'\nnn'结构了.
  25 # 注意在这里,'\nnn'表示一个八进制的值.
  26 echo $'\t \042 \t'   # Quote (") framed by tabs.
  27
  28 # 使用$'\xhhh'结构也可以使用十六进制数来转义.
  29 echo $'\t \x22 \t'# Quote (") framed by tabs.
  30 # 多谢Greg Keraunen指出这个..
  31 # 早期的Bash版本允许用'\x022'.(译者注,现在不行了)
  32 echo "==============="
  33 echo
  34
  35
  36 # 用ASCII码值把字符赋给变量.
  37 # ----------------------------------------
  38 quote=$'\042'      # 引号"被赋给变量quote了.
  39 echo "$quote This is a quoted string, $quote and this lies outside the quotes."
  40
  41 echo
  42
  43 # 用连串的ASCII码把一串字符赋给变量..
  44 triple_underline=$'\137\137\137'# 137是字符'_'的ASCII码.
  45 echo "$triple_underline UNDERLINE $triple_underline"
  46
  47 echo
  48
  49 ABC=$'\101\102\103\010'         # 101, 102, 103分别是A, B, C字符的八进制ASCII码.
  50 echo $ABC
  51
  52 echo; echo
  53
  54 escape=$'\033'                  # 033是ESC的ASCII码的八进制值
  55 echo "\"escape\" echoes as $escape"
  56 #                                 不可见的输出.
  57
  58 echo; echo
  59
  60 exit 0
  参考扩展结构$' '的另外一个例子xample 34-1.
  \"
  表示引号(")的字面意思
  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                     #简单的转义和引用
  2 echo \z               #z
  3 echo \\z            # \z
  4 echo '\z'             # \z
  5 echo '\\z'            # \\z
  6 echo "\z"             # \z
  7 echo "\\z"            # \z
  8
  9                     #命令替换
  10 echo `echo \z`      #z
  11 echo `echo \\z`       #z
  12 echo `echo \\\z`      # \z
  13 echo `echo \\\\z`   # \z
  14 echo `echo \\\\\\z`   # \z
  15 echo `echo \\\\\\\z`# \\z
  16 echo `echo "\z"`      # \z
  17 echo `echo "\\z"`   # \z
  18
  19                     # Here document
  20 cat
页: [1]
查看完整版本: shell一些转义字符的表示的特殊意思