shell编程程序实例
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编程程序实例的更多相关文章
- Shell 编程(实例二)
创建一个脚本,为指定硬盘创建分区 1.列出当前系统所有磁盘,让用户选择,如果选择quit则退出脚本:如果选择错误,则重新选择 2.当用户选择完成后,询问是否继续 3.抹除选择磁盘上的分区,为其创建三个 ...
- Shell 编程(实例一)
创建一个脚本 admin.sh 完成如下作用: -h | --help : 提供帮助信息 --add Users : 完成用户添加 -del User | --delete : 完成用户删除 -v ...
- Shell编程实例
一.简介 从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更 ...
- Linux shell编程02 shell程序的执行 及文件权限
第一个shell脚本 1. shell编程的方式 交互式shell编程 非交互式shell编程:执行的语句存放到一个文件 shell脚本:可以任意文件名,建议扩展名为sh 2. ...
- [ SHELL编程 ] shell编程中数值计算方法实例
SHELL编程中经常会涉及到数值计算,有时候对于这些计算命令使用场景容易忘记或者混淆,这里针对常用的命令做个总结.主要包括let.bc.expr.(())等. 1.let 使用格式:let 表达式,表 ...
- [ SHELL编程 ] echo和printf使用实例
本文主要描述Linux系统中echo和printf命令的使用方法,包括命令参数的含义.使用技巧. 1.echo 了解一个命令我们首先要知道它能做什么,它有哪些参数,参数的含义,可以实现我们哪方面 ...
- Shell程序实例集锦一
2007-12-13 07:51:40 标签:实例 程序 Shell 休闲 职场 Shell程序实例集锦一 前言:下面这些hell实例都是自己写的或者用过的一些Shell小程序.整理整理. ...
- Shell编程菜鸟基础入门笔记
Shell编程基础入门 1.shell格式:例 shell脚本开发习惯 1.指定解释器 #!/bin/bash 2.脚本开头加版权等信息如:#DATE:时间,#author(作者)#mail: ...
- shell编程基础练习
shell作为一个人机交互的接口,在Linux中发挥着很大的作用,而shell编程则是减轻系统工程师工作的利器,这里总结一下shell编程的主要内容(趁着程序运行的空档). 本文的基本结构是shell ...
随机推荐
- day16—正是Github,让社会化编程成为现实。
转行学开发,代码100天——2018-04-01 今天简单了解了一下GitHub的使用. 对于GitHub,在很多年前开始写程序的时候就频繁听到,也早早地注册之后看了真容.但是由于自己一直未产出较大型 ...
- 导入maven项目pom.xml首行报错missing artifact。。。
解决方法: 在maven地址(如一般默认的地址C:\Users\Administrator\.m2\repository\)找到对应包名 加后缀名为.lastUpdated文件(如:ojdbc14.l ...
- Jenkins使用二:新建任务
准备一个用于测试脚本,就打印hello world 新建job 配置: 添加步骤 立即构建
- STM32 实现内部Flash的读写(HAL库版)
Flash 中文名字叫闪存,是一种长寿命的非易失性(断电数据不丢失)的存储器.可以对称为块的存储器单元块进行擦写和再编程,在进行写入操作之前必须先执行擦除.一个Nand Flash由多个块(Block ...
- grpc应用于微服务的分析,基于python
grpc应用于微服务的分析 gRPC 是一个高性能.开源和通用的 RPC 框架,面向移动和 HTTP/2 设计,目前提供 C.Java 和 Go 语言版本,分别是:grpc, grpc-java, g ...
- socket选项总结(setsockopt)
功能描述: 获取或者设置与某个套接字关联的选 项.选项可能存在于多层协议中,它们总会出现在最上面的套接字层.当操作套接字选项时,选项位于的层和选项的名称必须给出.为了操作套接字层的选项, ...
- poj1065Wooden Sticks(dp——最长递减数列)
Description There is a pile of n wooden sticks. The length and weight of each stick are known in adv ...
- knn 数据集准备
""" Created on Mon Aug 26 20:57:24 2019 @author: huoqs knn algorithm ""&quo ...
- centos 7.2 查看时间,精确到毫秒级别
[root@ ~]# date +'%x %X.%N' 2019年08月06日 11时25分13秒.193666438 [root@commonTest ~]# date --help 用法:date ...
- [Bzoj1014][JSOI2008]火星人prefix(无旋Treap&hash)
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1014 因为涉及到增加和修改,所以后缀数组就被pass掉了,想到的就是平衡树维护hash值 ...