Linux 我用 Linux

shell场景脚本实战一(主控脚本实现)

2020-01-17  本文已影响0人  李菜菜同学

一、场景介绍

1.场景脚本介绍

shell脚本四大功能:

提取Linux操作系统信息

获取操作系统运行状态

分析应用状态

应用日志分析

2.学习shell意义

1.明白shell在我们的日常工作中能给我们什么帮助

2.系统的明白shell的开发环境和使用特性

3.明白shell对资源监控功能的作用

4.概括总结系统、应用的运维知识

3.Vim编辑器基本设置

意义:友好的设置vim编辑器,能更加方便、快捷的提高shell语言编程效率

设置方式分类:

1.临时设置

例子图示

2.永久设置(修改/etc/vimrc文件)

vim /etc/vimrv   //改变系统下的所有用户的设置

例子图示(变系统下的所有用户的设置) 例子图示(对jeson用户下的所有用户设置)

syntax on //语法高亮

set number //显示行号

set autoindent

set cindent               //自动缩进

shell高亮显示

基本格式:echo -e 终端颜色 + 显示内容 + 结束后的颜色

高亮例子

设置文件头 

执行:sudo vim /etc/vimrc

在末尾添加脚本如下:

 " 自动加入文件头

 autocmd BufNewFile *.py, *.sh, exec ":call SetTitle()"

 " 定义用户名和邮箱号,后面函数可以调用

 let $autor_name = "lidongfang"

 let $autor_email = "87888@163.com"

 " 函数SetTitle

 func SetTitle()

    if &filetype == 'sh'

        call setline(1,"\####################################################")

         call append(line("."),"\#File Name: ".expand("%"))

         call append(line(".")+1,"\#Autor: ".$autor_name)

         call append(line(".")+2,"\#Mail: ".$autor_email)

         call append(line(".")+3,"\#Crerat Time: ".strftime("%c"))

         call append(line(".")+4,"\========================================    ")

         call append(line(".")+5,"\#!/bin/bash")

         call append(line(".")+6,"")

     else

        call setline(1,"\###################################################")

        call append(line("."),"\#File Name: ".expand("%"))

        call append(line(".")+1,"\#Autor: ".$autor_name)

        call append(line(".")+2,"\#Mail: ".$autor_email)

        call append(line(".")+3,"\#Crerat Time: ".strftime("%c"))     

        call append(line(".")+4,"\===========================================    ")

        call append(line(".")+5,"\#!/usr/bin/python")

        call append(line(".")+6,"")

 endif

 autocmd BufNewFile * normal G

 endfunc

文件头显示

注意:

设置过vimrc文件之后,使用root用户发现创建新文件时候仍然没有头文件的显示。

使用vim命令可以,vi不可以显示。

更改为普通用户后,新建文件vi和vim都显示头文件。(不知道为什么-_-||)

4.场景脚本结构梳理

场景控制脚本结构图示

之后会详细介绍相关脚本。

5.echo高亮输出


高亮显示基本格式

echo -e "\e[1;35m Welcome to china~ \e[1;30m"

例子

也可以写为:

echo -e "\e[1;35m" "Welcome to china~" $(tput sgr0)

例子

$(tput sgr0)  这个是使得终端显示的颜色还是黑色。

echo -e "\e[1;35m" "Welcome to china~"

注意:不写闭合颜色的时候,下方的颜色不会闭合。

例子

6.关联数组

关联数组

普通数组:只能使用整数作为数组的索引

关联数组:可以使用字符串作为数组索引

申明关联数组变量:

declare -A ass_array1

数组名[索引] =变量值

ass_array1[index1]=pear

二、场景控制脚本

1.场景控制脚本主控脚本

1.控制脚本monitor_man.sh

 #!/bin/bash

  resettem=$(tput sgr0)

   declare -A ssharray

   i=1

   numbers=" "

  for script_file in $(ls -I "monitor_man.sh" ./)

   do

      echo -e "\e[1;35m" "The Script:" ${i} '==>' ${resettem} ${script_file}

    i=$((i+1))

 done

输出内容:

图示

注意: for script_file in `ls -l "monitor_man.sh" ./`

这里用的不是单引号而是反单引号,键盘上波浪号那个键。

但是我这里输出的内容是:

图示

接着实现把键和值存入关联数组。

ssharray[$i]=${script_file} //把文件名赋值给ssharray

 numbers="${numbers} | ${i}" //把id的值复制给numbers

while true

   do

      read -p "Please input a number [${numbers}]: " shuzi //读取输入的数字

      if [[ !  ${shuzi} =~ ^[0-9]+ ]];then  //如果输入的不是数字,就终止

             exit 0

      fi

      /bin/sh ./${ssharray[$shuzi]} //如果是数字,就执行对应的脚本

   done

主控脚本全部内容:

内容展示 执行结果展示

后续实战文章:

shell实战二(信息系统监控脚本):https://www.jianshu.com/p/0c7f1b523f1f

shell实战三(应用状态分析脚本):https://www.jianshu.com/p/ddccafa07154

shell实战四(日志分析控制脚本):https://www.jianshu.com/p/f213b35083dd

上一篇 下一篇

猜你喜欢

热点阅读