• Linux Bash环境下单引(')、双引号(")、反引号(`)、反斜杠(\)的小结


    在bash中,$、*、?、[、]、’、”、`、\、有特殊的含义。类似于编译器的预编译过程,bash在扫描命令行的过程中,会在文本层次上,优先解释所有的特殊字符,之后对转换完成的新命令行,进行内核的系统调用。

    其中,反引号类似于函数调用,而不仅仅是简单的文本替换及匹配。

    命令行中,被单引号引用的部分,其中所有的特殊字符按照普通字符解释;

    双引号引用的部分,仅解释$(美元符号)、\(\n \t除外)、`(反引号),解释后的文本仅按照普通文字处理(同单引号)。

    反引号相当于命令替换,引用的部分优先执行,将运行结果替换到外层的命令行文本中;反引号可以嵌套,但是嵌套时内部的反引号必须用\转义

    反斜杠用于命令换行,以及echo -e解释。

    网上各种文章常见的例子,其中第二行重点介绍一下:

    # x=*                    
    # echo $x      此行执行了两次替换,将$x替换为*,之后将*替换为当前目录下所有文件列表的文本,

              该文本作为参数赋给echo(bash会自动按照优先级,进行多层次替换 )
    hello.sh menus.sh misc.sh phonebook tshift.sh
    # echo '$x'               $x不进行任何解释,直接将文本‘$x’作为参数赋给echo
    $x
    # echo "$x"              $x替换为*,但是由于在双引号内,*不做替换,因此文本“*”将作为参数赋给echo
    *

    Tips:

    大多数Linux Distribution的默认shell为bash,查询当前主机所有shell可执行如下命令:

    $ cat  /etc/shell

    bash内部集成了40多条命令,通用格式为:

    $ 命令 [-选项] [参数]

    其中,”-“后为单字符选项,"--"后为完整的单词选项。一般来说,命令的某项功能(feature),会同时支持单字符选项及对应的多字符选项。

    在bash中,*、?、[、]有特殊的含义,用于字符匹配。*代表0到多个字符,?代表单个字符。[]用于匹配单个字符,内部用短横线按照ASCII码顺序标明匹配的字符范围,或者枚举所有要匹配的字符。

  • 相关阅读:
    Mysql常用sql语句(6)- limit 限制查询结果的条数
    Mysql常用sql语句(5)- as 设置别名
    Mysql常用sql语句(4)- distinct 去重数据
    Mysql常用sql语句(3)- select 查询语句基础使用
    Jenkins(8)- CentOS 7.x 通过yum安装jenkins
    Jmeter系列(11)- 并发线程组Concurrency Thread Group详解
    Jmeter系列(10)- 阶梯加压线程组Stepping Thread Group详解
    Jmeter系列(9)- jmeter插件入门篇
    Jmeter系列(8)- test plam测试计划参数详解
    Jmeter系列(6)- test plan测试计划详细讲解
  • 原文地址:https://www.cnblogs.com/radiolover/p/3553041.html
Copyright © 2020-2023  润新知