1、计算器  

  #!/bin/bash
  #test
  #by authors hdc 2018
  function add(){  #实现加法
  c=$[ $a + $b ]  #相加
  echo $c
  }
  function sub(){  #实现减法
  c=$[$a - $b]
  echo $c
  }
  function mul(){  #实现乘法
  c=$[ $a * $b ]
  echo $c
  }
  function devide(){  实现除法
  if [ $b -eq 0 ];then  #判断分母是否为0
  echo "分母不能为0"
  read -p "请重新输入第二个操作数:" b
  fi
  c=$[ $a / $b ]
  echo $c
  }
  i="ddf"
  while [[ -n "$i" ]]  #循环条件,即判断是否为空字符串,不是返回真
  do
  read -p "请输入要执行打操作:" i  #人机交互,输入
  if [[ -z "$i" ]];then  #循环条件,即判断是否为空字符串,是返回真
  echo "结束运行"
  exit
  fi
  read -p "Please input the number1:" a
  read -p "Please input the number2:" b
  case $i in
  add )
  add
  ;;
  sub )
  sub
  ;;
  mul )
  mul
  ;;
  devide )
  devide
  ;;
  * )
  echo "输入错误,请重新输入!"
  ;;
  esac
  done

2、auto_scp.sh

  #!/bin/bash
  #auto scp files for client
  #by authors hdc 2018
  if [ ! -f ip.txt ];then
    echo -e "\033[31m please create ip.txt Files\033[0m"
    cat <<EOF
    192.168.112.130
    192.168.112.131
  EOF
  exit
  fi
  if
    [ -z "$1" ];then
    echo "\033[31m $0 command ,example{src_files|src_dir des_dir}\033[0m"
    exit
  fi
  count=`cat /home/hdc/user/ip.txt | wc -l`
  rm -rf ip.txt.swp
  i=0
  while ((i<$count))
  do
    i=`expr $i + 1`
    sed "${i}s/^/&${i} /g" ip.txt >>ip.txt.swp
    IP=`awk -v I="$i" '{if(I==$1)print $2}' ip.txt.swp`
    scp -r $1 root@${IP}:$2
  done

3、auto_deny_ip.sh

  #!/bin/sh
  #auto drop ssh failed IP address
  #hdc 2018
  SEC_FILE=/var/log/secure
  IP_ADDR=`tail -n 1000 /var/log/secure | grep "Failed password"| egrep -o "([0-9]{1,3}\.){3}[0-9]{1,3}" | sort -nr |uniq -c | awk '$1>=4 {print $2}'`
  IPTABLE_CONF=/etc/sysconfig/iptables
  for i in echo $IP_ADDR
  do
    cat $IPTABLE_CONF | grep $i >/dev/null
  if
    [ $? -ne 0 ];then
    sed -i "/lo/a -A INPUT -s $i -m --state NEW -m tcp -p tcp --dport 22 -j DROP" $IPTABLE_CONF
  else
    echo "已经存在"
  fi
  done
  `service iptables restart`

shell编程程序实例的更多相关文章

  1. Shell 编程(实例二)

    创建一个脚本,为指定硬盘创建分区 1.列出当前系统所有磁盘,让用户选择,如果选择quit则退出脚本:如果选择错误,则重新选择 2.当用户选择完成后,询问是否继续 3.抹除选择磁盘上的分区,为其创建三个 ...

  2. Shell 编程(实例一)

    创建一个脚本 admin.sh 完成如下作用: -h | --help : 提供帮助信息 --add  Users : 完成用户添加 -del User | --delete : 完成用户删除 -v ...

  3. Shell编程实例

    一.简介 从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更 ...

  4. Linux shell编程02 shell程序的执行 及文件权限

    第一个shell脚本 1.       shell编程的方式 交互式shell编程 非交互式shell编程:执行的语句存放到一个文件 shell脚本:可以任意文件名,建议扩展名为sh 2.       ...

  5. [ SHELL编程 ] shell编程中数值计算方法实例

    SHELL编程中经常会涉及到数值计算,有时候对于这些计算命令使用场景容易忘记或者混淆,这里针对常用的命令做个总结.主要包括let.bc.expr.(())等. 1.let 使用格式:let 表达式,表 ...

  6. [ SHELL编程 ] echo和printf使用实例

    本文主要描述Linux系统中echo和printf命令的使用方法,包括命令参数的含义.使用技巧. 1.echo    了解一个命令我们首先要知道它能做什么,它有哪些参数,参数的含义,可以实现我们哪方面 ...

  7. Shell程序实例集锦一

    2007-12-13 07:51:40 标签:实例 程序 Shell 休闲 职场 Shell程序实例集锦一      前言:下面这些hell实例都是自己写的或者用过的一些Shell小程序.整理整理. ...

  8. Shell编程菜鸟基础入门笔记

    Shell编程基础入门     1.shell格式:例 shell脚本开发习惯 1.指定解释器 #!/bin/bash 2.脚本开头加版权等信息如:#DATE:时间,#author(作者)#mail: ...

  9. shell编程基础练习

    shell作为一个人机交互的接口,在Linux中发挥着很大的作用,而shell编程则是减轻系统工程师工作的利器,这里总结一下shell编程的主要内容(趁着程序运行的空档). 本文的基本结构是shell ...

随机推荐

  1. Python_003(字符串的神操作)

    一.编码问题 1.编码:计算机最早是ACSII码,美国人创造的,包含了英文字母(大写字母,小写字母)数字,标点等特殊符号; :共有7位0和1组成,表示128个ACSII码,但是计算机对7这个数字不敏感 ...

  2. 【HDOJ6614】AND Minimum Spanning Tree(签到)

    题意:给定标号从1到n的n个点,链接两个点x,y的代价为x AND y,求最小生成树总代价与满足代价最小的前提下字典序最小的方案 n<=2e5 思路: #include<bits/stdc ...

  3. Microsoft SQL Server 简介

    SQL Server 是Microsoft 公司推出的关系型数据库管理系统.具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行M ...

  4. ps磨皮的方法

    磨皮顾名思义就是将皮肤模糊掉,它可以去除皮肤上的一些斑点以及细纹,从而使皮肤看起来更加光滑.下面就是两张磨皮前后的对比图,很明显右边的人物的皮肤看起来要更好一些:给人的视觉效果也更年轻一点. 磨皮前后 ...

  5. 提示”The following modules are missing or built with a different engine version”

    一台机器使用自行编译版本引擎修改了工程后,另一台机器也使用自行编译版本引擎编辑该工程,有时会出现标题的提示 解决办法: 打开\Engine\Binaries\Win64\UE4Editor.modul ...

  6. [CSP-S模拟测试]:柱状图(树状数组+二分+三分)

    题目描述 $WTH$获得了一个柱状图,这个柱状图一共有$N$个柱子,最开始第$i$根柱子的高度为$x_i$,他现在要将这个柱状图排成一个屋顶的形状,屋顶的定义如下:$1.$屋顶存在一个最高的柱子,假设 ...

  7. P2672推销员

    传送 很抱歉之前用错误的思路写了一篇题解ρωρ 先说一下之前的思路. 对于每个住户,求出它的s[i]*2+a[i],寻找最大的住户m,然后按照a排序,如果m在前x大的住户里面,就选择前x大的住户,从中 ...

  8. pandas向左移动非空单元格

    碰到个小问题, 因为需要更改excel 的行为. 处理最多的还是excel的事, 不过看起来是excel.实际上对pandas 的库的熟悉.读取,更改,应用等等,方法. 十分有用. 先说需求,本来的表 ...

  9. Cordova指令

      安装 cordova: npm install -g cordova 创建应用程序 cordova create hello com.example.hello HelloWorld cordov ...

  10. python学习笔记:unittest单元测试

    单元测试:开发自测时写的代码 unittest基本原理: ♦整个平台的搭建使用的是python的unittest测试框架,这里简单介绍下unittest模块的简单应用. ♦unittest是pytho ...