shell脚本学习

来源:互联网 发布:湖南理工学院网络 编辑:程序博客网 时间:2024/06/18 07:01
  • 基本语法

    1. 定义变量 name=”hhh” 变量名和等号之间不能有空格

    2. 使用一个定义过的变量 ${name}

    3. 数据类型 字符串

      • 双引号、单引号都可以
      • 双引号里可以出现转义字符
      • #string 获取字符串长度
    4. 反引号 反引号是命令替换,命令替换是指Shell可以先执行中的命令,将输出结果暂时保存,在适当的地方输出。语法:command(反引号是tab键的上一个按键)

    5. 重定向
      ” >>” :如果文件不存在,将创建新的文件,并将数据送至此文件;如果文件存在,则将数据添加在文件后面
      “>” :如果文件不存在,同上,如果文件存在,先将文件清空,然后将数据填入此文件
      这里写图片描述

    6. 参数处理

      这里写图片描述

      一般,第一个和最后一个在实际中使用得比较频繁


awk详解

  1. awk是Linux系统里的文本分析工具,它将每一个输入行定义为一个记录,行中的每个字符串定义为一个域(段),域和域之间使用分割符分割。

  2. 工作原理:

    awk 会把每行进行一个拆分,用相应的命令对拆分出来的“段”进行处理。

    (1)行工作模式,读入文件的每一行,会把一行的内容,存到$0里

    (2)使用内置的变量FS(段的分隔符,默认用的是空白字符),分割这一行,把分割出来的每个段存到相应的变量$(1-100)

    (3)输出的时候按照内置变量OFS(out FS),输出

    (4)读入下一行继续操作

  3. 内置变量表

    $0 当前记录(作为单个变量)
    n 当前记录的第n个字段,字段间由FS分割
    FS 输入字段分隔符,默认是空格
    NF 当前记录中的字段个数(某一个行的列数)
    NR 已经读出的记录数,就是行号(行号从1开始)
    RS 输入的记录之间的分隔符,默认是换行符

  4. awk命令形式
    这里写图片描述

    commondir=pwd|awk -F "/$work_group/" '{print $1}'


0 0