linux 单引号,双引号,反引号

单引号

目的: 为了保护文字不被转换.除了他本身. 就是说除去单引号外, 在单引号内的所有文字都是原样输出.

被单引号用括住的内容,将被视为单一字串。引号内的代表变数的$符号,没有作用,也就是说,他被视为一般符号处理,防止任何变量替换。

双引号

目的: 为了包含文字或者函数段. 除了本身,反引号内的函数,$开头的变量和\开头反转换的字符外, 其余都是直接输出.
被双引号用括住的内容,将被视为单一字串。它防止通配符扩展,但允许变量扩展。这点与单引数的处理方式不同。


反引号

目的:是为了在双引号内保持函数转换. 但单引号内其无作用.
在前面的单双引号,括住的是字串,但如果该字串是一列命令列,会怎样?答案是不会执行。要处理这种情况,我们得用反单引号来做。
fdv=`date +%F`echo "Today $fdv"
在倒引号内的 date +%F 会被视为指令,执行的结果会带入 fdv 变数中。

1. [root@jszwl161 SP49EP9]# echo '$*><!'


    $*><!


2. [root@jszwl161 SP49EP9]# echo 'she is crying: "help"'


    she is crying: "help"


3. [root@jszwl161 SP49EP9]# echo '\\\\'


    \\\\


4. [root@jszwl161 SP49EP9]# echo 'hah 'test''


    hah test    #略去了所有'


5. [root@jszwl161 SP49EP9]# echo ' today is `date`'


    today is `date`   #反引号在此无法实现函数功能.


双引号


目的: 为了包含文字或者函数段. 除了本身,反引号内的函数,$开头的变量和\开头反转换的字符外, 其余都是直接输出.
被双引号用括住的内容,将被视为单一字串。它防止通配符扩展,但允许变量扩展。这点与单引数的处理方式不同。


1. [root@jszwl161 SP49EP9]# echo "today is `date`"


    today is Fri Jul   4 08:03:34 GMT 2008


2. [root@jszwl161 SP49EP9]# echo "today is 'date'"


    today is 'date'


3. [root@jszwl161 SP49EP9]# echo "\\\\"


    \\


4. [root@jszwl161 SP49EP9]# echo "test "test""


    test test


反引号


目的:是为了在双引号内保持函数转换. 但单引号内其无作用.
在前面的单双引号,括住的是字串,但如果该字串是一列命令列,会怎样?答案是不会执行。要处理这种情况,我们得用反单引号来做。
fdv=`date +%F`echo "Today $fdv"
在倒引号内的 date +%F 会被视为指令,执行的结果会带入 fdv 变数中。


1. [root@jszwl161 SP49EP9]# echo "today is `date`"


     today is Fri Jul   4 08:03:34 GMT 2008    #将函数date转换.


2. [root@jszwl161 SP49EP9]# echo ' today is `date` '


     today is `date`    #在单引号内无作用.


转载于:https://my.oschina.net/swearyd7/blog/280291

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值