• 日常脚本练习


    1、创建用户脚本

    #!/bin/bash
    #
    #********************************************************************
    #Author:    小汤圆
    #:   
    #Date:     2019-12-04
    #FileName:   CreateUser.sh
    #URL:       暂无
    #Description:    The test script
    #Copyright (C):   2019 All rights reserved
    #QQ Address        2382990774
    #**************************************************************
    COLOR='33[1;31m'
    COLOREND='33[0m'
    useradd $*
    echo -e "$COLOR User $* is 'created' $COLOREND"

    注释:$*为系统自带变量,$COLOR和$COLOREND为自定义的变量,想修改显示的颜色可以很方便的修改。


    2、复制文件到其他机器

    #!/bin/bash
    #**************************************************************
    COLOR='33[1;32m'
    COLOREND='33[0m'
    echo -e "$COLOR 'start'$COLOREND"
    scp -r $* root@192.168.27.102:/data/
    echo -e "$COLOR 'over'$CLOOREND"

     

     注释:user.sh 为文件名,加-r可以传文件也可以传文件夹


    3、删除改为移到到某个文件夹

    #!/bin/bash
    #**************************************************************
    CurrentTime=`date '+%F_%s'`
    DestinationDir='/tmp'
    Color='33[1;33m'
    ColorEnd='33[0m'
    mkdir -p $DestinationDir/$CurrentTime
    mv $* $DestinationDir/$CurrentTime/
    echo -e "$Color move complete. you will find the files that is deleted in $DestinationDir/$CurrentTime $ColorEnd"

     注释:alias rm='/data/scripts37/rm.sh'  定义别名rm等于刚刚创建的脚本,执行rm就自动执行脚本

     定义别名的地方 直接在根目录下输入vim .bashrc,或者在随便什么目录下输入vim ~/.bashrc

    $[RANDOM%7+31 颜色随机


     4、编写计算鸡兔同笼

    #!/bin/bash
    #********************************************************************
    Color="33[$[RANDOM%7+31]m"
    ColorEnd="33[0m"
    read -p "Input head number: " head
    read -p "Input foot number: " foot
    rabbit=$[foot/2-head]
    chook=$[head-rabbit]
    echo -e $Color"rabbit:$rabbit chook:$chook"$ColorEnd

    注释:$[RANDOM%7+31 颜色随机


    5、编写ping脚本

    #!/bin/bash
    #********************************************************************

    ping -c1 -W2 $* > /dev/null && echo "$* is up" || echo "$* is unreachable"

    注释:该脚本未设置输入为空的提示,下面有更优化的版本



    6、ping 脚本的进阶版

    #!/bin/bash
    #
    #********************************************************************

    Color="33[$[RANDOM%7+31]m"
    ColorEnd="33[0m"
    [ $# -eq 0 ] && { echo "Usage: `basename $0` Input your ip address " ; exit 10; }
    ping -c1 -W2 $* > /dev/null && echo -e $Color "$* is up"$ColorEnd || echo -e $Color"$* is down"$ColorEnd

     注释:该脚本未设置判断IP地址是否正确,IP地址不存在也会显示


    7、ping 脚本更优化版

    #!/bin/bash
    #
    #********************************************************************

    Color="33[$[RANDOM%7+31]m"
    ColorEnd="33[0m"
    [ $# -eq 0 ] && { echo -e $Color "Usage: `basename $0` Input your ip address "$ColorEnd ; exit 10; }
    [[ $1 =~ ^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$  ]]  && echo 'Correct IP address' || { echo 'Please enter the IP address of the specification'; exit 10; }
    ping -c1 -W2 $* > /dev/null && echo -e $Color "$* is up"$ColorEnd || echo -e $Color"$* is down"$ColorEnd

    1,ping 空的地址 会提示让你输入地址:

     2,ping 一个不规范的IP地址

    3,ping一个可以ping通的地址或网关或子网掩码会提示你该IP地址是开启的:

     4,ping 一个正确的IP地址,但是网络上并没有这个IP地址或者未启用该IP地址


    8、输入yes or no

    #!/bin/bash
    #
    #********************************************************************

    read -p "Please choose yes or no:" value
    value=`echo $value |tr 'A-Z' 'a-z'`
    [[ "$value" =~ ^(y|yes)$ ]] && echo "Your input is: $value" && exit 0
    [[ "$value" =~ ^(n|no)$ ]] && echo "Your input is: $value"|| echo "Please execute again,and input yes or no"


    8、输入yes or no

    #!/bin/bash
    #
    #********************************************************************

    read -p 'Do you agree ?(yes or no):' ANSWER
    [[ "$ANSWER" =~ ^[Yy]([Ee][Ss])?$ ]] && { echo ok ; exit; }
    [[ "$ANSWER" =~ ^[Nn][Oo]?$ ]] && { echo Not ok ; exit ; }
    echo 'Your input is false.'


    9、计算1..100的和

     declare -i sum=0
    for i in {1..100};do
     let sum+=i
    done
    echo sum=$sum

    seq -s+ 100 |bc 也可以实现这个结果,但并不是脚本


    判断是否是基数,是的话相加

    declare -i sum=0
    for i in {1..100};do
     if [ $[i%2] -eq 1 ];then
     let sum+=i
     fi
    done
    echo sum=$sum


    NetId=172.16.10
    for HostId in {1..254};do
     if ping -c1 -W1 $NetId.$HostId &> /dev/null ;then
      echo $NetId.$HostId is up | tee -a /data/hostlist.txt
     fi
    done

    扫描这个网段里的IP处于开机状态的,显示IP地址up并保存的/data/hostlist.txt里


    NetId=172.16.10
    for HostId in {1..254};do
     {
     if ping -c1 -W1 $NetId.$HostId &> /dev/null ;then
      echo $NetId.$HostId is up | tee -a /data/hostlist1.txt
     fi
     } &
    done
    wait

    快速执行扫描主机{} & 同时执行多次



    ------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------- 博客均为个人笔记,无所追求,仅供参考~~~ QQ--2382990774
  • 相关阅读:
    python 星号*使用方法
    python print 使用分隔符 或行尾符
    python 打印输出至文件中, 'wt'读写文件方式,会把原文件内容清空
    python 换行符的识别问题,Unix 和Windows 中是不一样的
    python 读不同编码的文本,传递一个可选的encoding 参数给open() 函数
    django学习笔记(4)
    dos下edit编辑器的快捷命令一览
    django学习笔记(3)
    django学习笔记(2)
    django学习笔记(1)
  • 原文地址:https://www.cnblogs.com/alexlv/p/11984439.html
Copyright © 2020-2023  润新知