zoukankan      html  css  js  c++  java
  • Shel脚本学习—反引号、单引号、双引号区别与联系

      反引号

           反引号位 (`) 位于键盘的Tab键的上方、1键的左方。注意与单引号(')位于Enter键的左方的区别。
      在Linux中起着命令替换的作用。命令替换是指shell能够将一个命令的标准输出插在一个命令行中任何位置。
      如下,shell会执行反引号中的date命令,把结果插入到echo命令显示的内容中。
      [root@localhost sh]# echo The date is `date`
      The date is 2016年 08月 7日 星期日  19:25:43 CST

      单引号,双引号
      单引号、双引号用于用户把带有空格的字符串赋值给变量事的分界符。
      [root@localhost sh]# str="Today is Sunday"
      [root@localhost sh]# echo $str
      Today is Sunday


      如果没有单引号或双引号,shell会把空格后的字符串解释为命令。
      [root@localhost sh]# str=Today is Sunday
      bash: is: command not found


      单引号和双引号的区别。单引号告诉shell忽略所有特殊字符,而双引号忽略大多数,但不包括$、、`。
      [root@localhost sh]# testvalue=100
      [root@localhost sh]# echo 'The testvalue is $testvalue'
      The testvalue is $testvalue
      [root@localhost sh]# echo "The testvalue is $testvalue"
      The testvalue is 100

           注意:`` 这个东西的用法,我百度了一下,和$()是一样的。在执行一条命令时,会先将其中的 ``,或者是$() 中的语句当作命令执行一遍,再将结果加入到原命令中重新执行,例如:
       echo `ls`
      会先执行 ls 得到xx.sh等,再替换原命令为:
      echo xx.sh
      最后执行结果为
      xx.sh
      那么,平时我们遇到的把一堆命令的执行结果输出到一个变量中,需要用这个命令替换符括起来,也就可以理解了。
      这里又涉及到了一个问题,虽然不少系统工程师在使用替换功能时,喜欢使用反引号将命令括起来。但是根据POSIX规范,要求系统工程师采用的是$(命令)的形式。所以,我们最好还是遵循这个规范,  少用``,多用$()

  • 相关阅读:
    anchor-free : CornerNet 和 CenterNet 简要笔记
    图像分割中的loss--处理数据极度不均衡的状况
    python 装饰器
    python3 新特性
    VSCode Eslint+Prettier+Vetur常用配置
    JS lodash学习笔记
    JS 高端操作整理
    Vue 组件通信
    Vue 搭建vue-element-admin框架
    小程序 HTTP请求封装
  • 原文地址:https://www.cnblogs.com/-zyj/p/5746975.html
Copyright © 2011-2022 走看看