zoukankan      html  css  js  c++  java
  • 【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
  • 相关阅读:
    wpf 文字动态动画效果
    c# 使用 Tchart控件之数据绑定
    Linq to sql学习之查询句法
    非常有用的查询所有SqlServer数据库字典的操作
    利用WPF建立自适应窗口大小布局的WinForm窗口
    SqlMethods
    wpf 炫彩动画效果简单实例
    SetBkMode与SetBkColor理解
    Windows的字体LOGFONT
    GetWindowRect和GetWindDC GetClientRect和GetDC 在标题栏输入文字
  • 原文地址:https://www.cnblogs.com/songgj/p/10709439.html
Copyright © 2011-2022 走看看