shell中的引号

单引号(' ')

      单引号可以说是即见即所得,即将单引号的内容原样输出

      由单引号括起来的字符都作为普通字符输出

      防止任何变量扩展,当shell碰到第一个单引号时,它将忽略掉其后直到右引号的所有特殊字符

      例如:

      a=hello

      echo  ' $a ? * `pwd` '      # 输出: $a ? * `pwd`

      echo  ' " `pwd` " '           # 输出:" `pwd` "

双引号(" ")

      双引号与单引号类似,不同在于单引号忽略所有特殊字符,双引号只要求忽略大多数

      括在双引号中的三种特殊字符不被忽略:$  \  `,其余字符作为普通字符对待

      echo  " ' `pwd` ' "           # 输出:' /home/ubuntu '

      echo  " ' $a ' "                 # 输出:' hello '  

      与单引号的区别实例:

      x=*

      echo  $x                          # 输出当前目录下的所有文件

      echo  ' $x '                      # 输出:$x

      echo  " $x "                     # 输出:*

反引号(` `) 

      1.反引号括起来的字符串被shell解释为命令行

      在执行时,shell会先执行该命令行,并以它的标准输出结果取代整个反引号部分

      shell能够将一个命令的标准输出插在一个命令行中任何位置

      echo today is `date`       # 输出:today is 2013年 04月 23日 星期二 09:29:30 CST

      # shell执行echo命令时,首先执行`date`的命令date,并将输出结果取代`date`这部分

      # 最后输出替换后的整个结果

      2.反引号的这种功能可以进行命令置换,即把反引号括起来的执行结果赋值给指定变量

      例如:

      today=`date`

      echo today is $today      # 输出:today is 2013年 04月 23日 星期二 09:29:30 CST

     3.$(...)结构也可以进行命令替换

      today=$(date)               # 将date命令的标准输出结果取代$(date)这部分并赋给变量today

      echo today is $today     # 输出:today is 2013年 04月 23日 星期二 09:29:30 CST

     4.$()和``的区别

      反引号可以嵌套使用,但必须注意嵌套使用时内层的反引号必须用反斜线将其转义

      例如:

      user=`echo user is `whoami``

      echo $user                    # 输出:user iswhoami

      user=`echo user is \`whoami\``

      echo $user                    # 输出:user is ubuntu

      反引号内嵌套反引号时必须用反斜线将其转义,而$()中可以直接嵌套

      user=$(echo user is $(whoami))

      echo $user                    # 输出:user is ubuntu

      5.$()和``的优缺点

      反引号基本上可用在全部的unix shell中,其移植性比较高,但是``(反引号)与' '(单引号)容易混淆

      $()相对于``比较直观,而且可以多层嵌套,但是$()并不是每一种shell都能使用。

反斜线(\)

      1.反斜线放在特殊符号前,则该特殊符号的作用消失

      放在指令前,有取消别名(aliases)的作用

      name=jim                      

      echo $name                  # 输出:jim

      echo \$name                 # 输出:$name

      echo *                           # 输出当前目录下的所有文件

      echo \*                          # 输出:*

      echo \'                           # 输出:'

      echo \"                           # 输出:"

      echo \\                           # 输出:\

      2.在echo命令后如果要让转义字符发生作用就要使用-e选项并且使用双引号括起来

      如\a \b \e \n \r \t 等

      echo \n                          # 输出:n

      echo "\n"                       # 输出:\n

      echo -e \n                      # 输出:n

      echo -e "\n"                   # 输出:换行

     3.反斜线用于一行的最后一个字符时即反斜线后跟着一个新行

      shell会把行尾的反斜线作为续行符(回车符无效,只起换行作用)

      这种结构在分几行输入长命令时经常使用

      

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值