zoukankan      html  css  js  c++  java
  • Linux egrep及bash的变量

    egrep及扩展的正则表达式
      egrep = grep -E;
      扩展正则表达式的元字符:
       字符匹配
        “.”、[ ]、[^];
       匹配次数
        ""、+、?、{m}、{m,n};
       位置锚定
        ^、$、\<、\>、\b;
       分组
        ( );
        支持后向引用;
       或者:|
        例子:a|Cat;
      fgrep:不支持正则表达式搜索,严格匹配给定的字符;
    bash
      bash中变量的种类
       本地变量:生效范围为当前shell,不包括其父shell和子shell
       环境变量:生效范围为当前shell及其子shell;
       局部变量:生效范围为当前shell一段代码片段中(通常指一段函数之内);
       特殊变量:$?,$0,$*,$@,$#;
       位置变量:根据位置对应关系,将命令行中的参数依次赋值给脚本中的位置变量:$1,$2,… ;
        本地变量
         变量赋值:name=‘value’;
          value:
           可以使用直接赋值; name=‘string’
           可以引用现有的变量;name=‘$PATH’
           可以引用命令;name=`command` 或 name=$(command);
        变量引用:
         " ":弱引用,其中的变量引用会被替换为相对应的值;
         ’ ':强引用,其中的变量引用不会被替换为对应的值,而是保持原来的字符内容;
        显示已定义的变量:
         set;
        撤销变量:
         unset name;
       环境变量:本地变量可以被导出为环境变量;
        变量声明,赋值:
         export name=value;
         declare -x name=value;
        变量引用:同本地变量;
         显示所有环境变量
         env、export、printenv;
        销毁变量:
         unset name;
       位置变量
        在脚本代码中调用通过命令行传递给脚本的参数;
        $1,$2,…:对应调用第1、第2、…个参数;
        0    0:调用脚本名字本身;     
    :调用命令行中的所有参数,并且当做一个参数来使用(不精确,但意思类似);
        KaTeX parse error: Expected 'EOF', got '#' at position 32: …每个参数单独调用;     $#̲:传递给脚本的参数个数;   …RANDOM;
        增强型赋值:
         +=,-+,++,–,/=,%=,==;
         自增、自减:
          let var++ → let var+=;
          let var-- → let var-=;
        条件测试
         判断某需求是否满足,需要由测试机制来实现;
         Note:专用的测试表达式需要由测试命令辅助完成测试过程;
         测试命令
          test expression;
          [ expression ];
          [[ expression ]];
           Note:方括号于表达式中间必须存在一个空白字符;
         bash的测试类型
          数值测试
           -gt:是否大于;
           -lt:是否小于;
           -ne:是否不等于;
           -ge:是否大于等于;
           -te:是否小于等于;
           -eq:是否等于;
          字符测试
           >:是否大于;字符的大小是根据ASCII来比较的;
           <:是否小于;
           ==:是否等于;
           !=:是否不等于;
           =~:左侧的字符串是否能被右侧的PATTERN所匹配;
            Note:使用~=时,需要使用[[ expression ]];
           -z:是否为空;
           -n:是否为非空;
           Note:用于字符串比较的时候,应该使用引号把字符串括起来;
          bash条件测试(文件测试)
           测试方式
            test EXPRESSION

    [ EXPRESSION] [[ EXPRESSION ]]

    测试表达式的类别
            数值比较
            字符串测试
            文件测试:获取帮助:man bash;
             -a FILE:文件是否存在;
             -e FILE:文件是否存在;
             -d FILE:文件是否存在且为目录;
             -f FILE:文件是否存在且为普通文件;
             -r FILE:文件是否存在当前使用者对此文件是否具有可读权限;
             -w FILE:文件是否存在当前使用者对此文件是否具有可写权限;
             -x FILE:文件是否存在且当前使用者对此文件是否具有可执行文件;
             -g FILE:文件是否存在且具有sgid权限;
             -u FILE:文件是否存在且具有suid权限;
             -s FILE:文件是否存在且非空;
             -t fd:fd表示文件描述符打开,且与某终端相关;
              一般情况下,主机启动时自己启动的文件与终端无关,自己手动启动的与终端有关;
             双目测试:通常用于比较两个配置文件的新旧;
              FILE1 -ef FILE2:FILE1与FILE2是否为同一个文件;
              FILE1 -nt FILE2:FILE1是否比FILE2更新;
              FILE1 -ot FILE2:FILE1是否比FILE2更旧;
            组合条件测试:
             逻辑运算:
              第一种方式
               COMMAND || COMMAND
               COMMAND && COMMAND
               !COMMAND
                [ -e FILE ] || [ -r FILE ]
              第二种方式
                COMMAND -o COMMAND
                COMMAND -a COMMAND
                ! COMMAND
                必须使用测试命令进行;
                [ -e FILE -o -r FILE ]
               取非的时候可能用到:
                摩根定理:
                 !(P && Q) = (!P) || (!Q)
                  在这里插入图片描述
                 !(P ||Q) = (!P) && (!Q)
                  在这里插入图片描述
       bash自定义退出状态码:
         exit [n];
          脚本中一旦执行到exit,就会直接退出脚本,且退出状态码为[n];
          如果没有设置exit,则以脚本最后一条命令的状态码为脚本最后的退出状态码;

    注:根据马哥视频做的学习笔记,如有错误,欢迎指正;侵删

  • 相关阅读:
    Sitecore 9 为什么数据驱动的组织选择它
    Sitecore 个性化
    Sitecore 9 您应该了解的所有新功能和变化
    Sitecore客户体验成熟度模型之旅
    Sitecore 8.2 工作流程
    sitecore-多变量测试与A / B测试概念论述
    sitecore
    cesium1.65api版本贴地贴模型标绘工具效果(附源码下载)
    leaflet结合geoserver利用WFS服务实现图层新增功能(附源码下载)
    openlayers6实现webgl点图层渲染效果(附源码下载)
  • 原文地址:https://www.cnblogs.com/guowei-Linux/p/9787342.html
Copyright © 2011-2022 走看看