shell脚本

shell脚本本身是一个工具

在写脚本之前,就要明白:这个功能到底如何实现?

curl访问文件源代码,查看网站状态;

才能通过shell(bash)所提供的逻辑关系,来串联这些语句,从而实现,脚本自动化运维;

1、bash的特性

  history

  重定向原理

  shell cli界面的快捷键

      ctrl +w删除一个单词,以恐惧而为分隔符

  文本通配globbing

2、编程原理

  编程原理:二进制  程序:指令+数据+【逻辑关系】

  编程语言的分类:高级语言:1、解释 2、面向过程 3、变量

  驱动

  指令:

    Linux 系统执行的命令(基础)

  逻辑关系:

    循环执行

    循环   for   while   until 

    分支   if  case   

    exit  break  continue   函数(return) sleep

    数据:

       变量

      echo print printf

      输入  read

      bash支持的默认变量

        环境变量(可以直接在代码中使用$ RANDOM  env  set)  cd -$OLDPWD $PWD

        传参  $# $? $1 $2 $$ $!   esc+.

        自定义变量:

            局部变量

            函数(本地变量)local

          数组

3、文本处理三剑客

  正则表达式(globbing)

  grep  行过滤

    grep egrep fgrep

     sed   行编辑器

    sed的子命令s

  awk  报告生成

    独立的编程语言解释器;他有自己独立的语法格式;

    awk的工作原理:1、取 2、分隔  3、处理

    awk 选项.... 'program'  file....

    1、option -F -V 

    2、program 

        1、print  printf  (占位符、修饰符、(注意:不能忘记回车\n))

        2、变量

          内置变量:NF ($NF\变量调用)

          FS  OFS  RS ORS FNR NR ARGV  FILENAME

        3、地址定界(正则表达式)

          1、空  2、 NR>=10&&NR<=20  3、 /pat1/   4、/pat1/,/pat2/  5、 BEGIN|END   6、pat1?pat2:pat3

        4、运算符

          1、数值运算符:%【取余】  //【取整】

            随机整数:$RANDOM%100+1

          2、比较运算符   < > <= >= !=

          3、逻辑运算符  &&  ||  !

          4、赋值运算 = += ++  --

          5、action

          6、语法

            if  switch while do-while for 

            break  continue  next(控制默认循环)

            if (条件语句){执行语句}

            if (条件语句){执行语句}else{执行语句}

            初始语句;while(判断条件){循环体}{循环体;初始值控制语句}

            for(初始语句;判断语句;初始值控制语句){循环体}

            for(变量 in 列表){循环体}

          7、数组

            列遍历的数据统计:

        

 

posted @ 2019-08-23 11:16  失烦先生  阅读(167)  评论(0编辑  收藏  举报