shell脚本大集锦
Posted 可乐卷儿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本大集锦相关的知识,希望对你有一定的参考价值。
剪刀石头布人机对战
代码如下:
vim r.sh
#!/bin/bash
echo -e "\\e[35m人机对战开始\\e[0m"
read -p "剪刀:0 石头:1 步:2 请出拳(选择数字0-2): " num
com=`expr $RANDOM % 3`
case $num in
[0])
if [ $com -eq 0 ];then
echo "平局"
elif [ $com -eq 2 ];then
echo "你输了"
elif [ $com -eq 1 ];then
echo "你赢了"
fi
;;
[1])
if [ $com -eq 0 ];then
echo "你赢了"
elif [ $com -eq 2 ];then
echo "平局"
elif [ $com -eq 1 ];then
echo "你输了"
fi
;;
[2])
if [ $com -eq 0 ];then
echo "你输了"
elif [ $com -eq 2 ];then
echo "你赢了"
elif [ $com -eq 1 ];then
echo "平局"
fi
;;
esac
输入一个月份,判断是一年中的第几季度
代码如下:
vim yue.sh
#!/bin/bash
read -p "请输入月份[数字1-12]:" m
case $m in
[1-3])
echo "第一季度";;
[4-6])
echo "第二季度";;
[7-9])
echo "第三季度";;
[10-12])
echo "第四季度";;
*)
echo "输入错误";;
esac
输出1-100
代码如下:
#!bin/bash
for ((i=1;i<=100;i++))
do
echo $i
done
输出1-100内偶数
代码如下:
#!bin/bash
for i in {1..100}
do
if [[ $i%2 -eq 0 ]];then
echo $i
fi
done
打印出100内的偶数的和
代码如下:
#!bin/bash
sum=0
for i in {1..100}
do
if [[ $i%2 -eq 0 ]];then
let sum=$i+$sum
fi
done
echo $sum
创建ip段,验证是否可以ping通
ping命令测试网段内主机,提示出可以ping通的和不可以ping通,并分别统计
#!/bin/bash
upnum=0;
dnum=0;
for i in {1…254}
do
ping -c2 192.168.1.$i
if [
?
−
e
q
0
]
;
t
h
e
n
e
c
h
o
"
192.168.1.
? -eq 0 ]; then echo "192.168.1.
?−eq0];thenecho"192.168.1.i is up"
let upnum++
else
echo “192.168.1.
i
i
s
d
o
w
n
"
l
e
t
d
n
u
m
+
+
f
i
d
o
n
e
e
c
h
o
"
通
信
成
功
的
i
p
数
量
共
i is down" let dnum++ fi done echo "通信成功的ip数量共
iisdown"letdnum++fidoneecho"通信成功的ip数量共upnum个”
echo “通信失败的ip数量共$dnum个”
根据以下命令,获取192.168.1.1到192.168.1.5 五台机器得健康运行时长,并输出,注意格式
[root@localhost ~]# uptime
14:29:36 up 4:46, 2 users, load average: 0.00, 0.01, 0.05
14:29:37 up 1day, 4:46 2 users, load average: 0.00, 0.01, 0.05
ip 健康运行时长
192.168.1.1 4个小时46分钟
192.168.1.2 4个小时47分钟
192.168.1.3 4个小时49分钟
192.168.1.4 4个小时49分钟
192.168.1.5 4个小时49分钟
#!/bin/bash
#定义健康运行时长指标
runNamex=""
varrunning=`cat /var/log/running.log`
#获取健康运行时长
function runningTime(){
running=`ssh root@$1 uptime | awk -F, '{print $1}' |awk 'BEGIN{FS="up"}{print $2}' `
echo "$running" | grep day
if [ $? = 0 ];then
running=`ssh root@$1 uptime | awk -F, '{print $2}' `
fi
pp=`echo "$running" | awk -F: '{print $1"小时"$2"分钟"}'`
runNamex="${pp}:$1"" "$runNamex
echo "时间:$2 IP为:$1的服务器成功获取健康运行时长RUNNINGTIME值"
}
function Checks(){
echo -e "\\e[1;32m======>>>开始采集。。。。。\\e[0m"
for ((ipname=0;ipname<$arrlength;ipname++))
do
Datestart=`date "+%Y-%m-%d %H:%M:%S"`
runningTime ${arrList[$ipname]} $Datestart
echo "$runNamex" > /var/log/running.log
done
echo -e "\\e[1;32m======>>>采集结束。。。。。\\e[0m"
}
function vrm(){
for j in $varrunning
do
iname=`echo "$j" | awk -F: '{print $2}'`
runtime=`echo "$j" | awk -F: '{print $1}'`
echo -e " $pl\\t \\e[1;5;32m*\\e[0m\\t\\e[1;29m$iname\\t$runtime\\e[0m"
done
}
以上是关于shell脚本大集锦的主要内容,如果未能解决你的问题,请参考以下文章