• 【Shell】Shell介绍及常用shell脚本


    Shell介绍

      shell是一个用c编写的程序,是用户和系统内核交互的工具。它既是一种命令语言也是一种解释性的编程语言。

    Shell的功能

      1. 命令行解释功能。解析命令行中输入的命令。比如ls,cp,df等等。

      2. shell编程,可以开发一些自动化的小工具。比如系统中很多启动脚本就是用shell开发的。

      3. 变量维护。比如打印当前用户echo $USER。

      4. 启动程序,比如启动Apache,nginx等。

      5. 输入输出重定向。

    Shell脚本  

      定义:

        shell脚本就是将完成一个任务的所有命令按照执行的顺序,自上而下写入到一个文本文件中,然后给予可执行权限。

       脚本书写规范

        1. shell脚本文件命名不要用无意义的字母或者数字,要见名之意。文件扩展名用.sh结尾。文件名总长度最好不要超过30个字符。

        2. 脚本开头第一行定义脚本执行环境,如 #!/bin/bash 或者 #!/bin/sh,前面#!这个称之为幻数,后面跟的是解释此脚本的shell的路径,内核会根据它来决定用哪个程序来执行。默认是用bash来解释。

          3. 脚本开头要写一些必要的脚本注释信息,就是该脚本的作用,如果没有注释会很难理解脚本的功能,只能通读一遍代码,这样会浪费很多宝贵时间。下面是一个例子。

    #Author :songguojun
    #Created at : 2019-10-10
    #Release : 1.0
    #Script Description:  nginx install

     

    Shell脚本实际案例

    1.检查主机存活状态

    #!/bin/bash  
    IP_LIST="192.168.18.1 192.168.1.1 192.168.18.2"
    for IP in $IP_LIST; do
        NUM=1
        while [ $NUM -le 3 ]; do
            if ping -w 2 $IP > /dev/null; then   #设置两秒超时时间
                echo "$IP Ping is successful."
                break
            else
                # echo "$IP Ping is failure $NUM"
                FAIL_COUNT[$NUM]=$IP
                let NUM++
            fi
        done
        if [ ${#FAIL_COUNT[*]} -eq 3 ];then
            echo "${FAIL_COUNT[1]} Ping is failure!"
            unset FAIL_COUNT[*]
        fi
    done

     2.遍历两个时间段并动态修改时间

    #!/bin/bash
    #用法 : sh time.sh  2019-01-01  2020-01-01
    EXPORT_START_DATE
    =$1 EXPORT_END_DATE=$2 date -s "$EXPORT_START_DATE" > /dev/null i=$EXPORT_START_DATE while [[ $i < `date -d "+1 day $EXPORT_END_DATE" +%Y%m%d` ]] do
    echo $i i=`date -d "+1 day $i" +%Y-%m-%d` done
  • 相关阅读:
    Altium_Designer-原理图库如何添加低电平有效的管脚?
    Altium_Designer-怎么将“原理图的更改”更新到“pcb图”?
    Altium_Designer-各种布线总结
    Altium_Designer-PCB中各层作用详解
    AD的命名规则 AD常用产品型号命名规则
    Altium_Designer如何快速寻找元件和封装
    Makedown语法说明
    使用Atom编写Makedown
    Vim基本命令
    Python-Django框架学习笔记——第二课:Django的搭建
  • 原文地址:https://www.cnblogs.com/songgj/p/10709439.html
Copyright © 2020-2023  润新知