shell编程100例(11-15)

11、石头、剪刀、布游戏

#!/bin/bash

编写脚本,实现人机<石头,剪刀,布>游戏

game=(石头 剪刀 布)
num= [ R A N D O M c o m p u t e r = [RANDOM%3] computer= [RANDOMcomputer={game[$num]}

通过随机数获取计算机的出拳

出拳的可能性保存在一个数组中,game[0],game[1],game[2]分别是 3 中不同的可能

echo “请根据下列提示选择您的出拳手势”
echo “1.石头”
echo “2.剪刀”
echo “3.布”

read -p “请选择 1‐3:” person
case $person in
1)
if [ $num -eq 0 ]
then
echo “平局”
elif [ $num -eq 1 ]
then
echo “你赢”
else
echo “计算机赢”
fi;;
2)
if [ $num -eq 0 ]
then
echo “计算机赢”
elif [ $num -eq 1 ]
then
echo “平局”
else
echo “你赢”
fi;;
3)
if [ $num -eq 0 ]
then
echo “你赢”
elif [ $num -eq 1 ]
then
echo “计算机赢”
else
echo “平局”
fi;;
*)
echo “必须输入 1‐3 的数字”
esac
12、编写脚本测试 192.168.4.0/24 整个网段中哪些主机处于开机状态,哪些主机处于关机状态(for 版本)

#!/bin/bash

编写脚本测试 192.168.4.0/24 整个网段中哪些主机处于开机状态,哪些主机处于关机

状态(for 版本)

for i in {1…254}
do
# 每隔0.3秒ping一次,一共ping2次,并以1毫秒为单位设置ping的超时时间
ping ‐c 2 ‐i 0.3 ‐W 1 192.168.4.$i &>/dev/null
if [ ? − e q 0 ] ; t h e n e c h o " 192.168.4. ? -eq 0 ];then echo "192.168.4. ?eq0];thenecho"192.168.4.i is up"
else
echo “192.168.4.$i is down”
fi
done
13、编写脚本测试 192.168.4.0/24 整个网段中哪些主机处于开机状态,哪些主机处于关机状态(while 版本)

#!/bin/bash

编写脚本测试 192.168.4.0/24 整个网段中哪些主机处于开机状态,哪些主机处于关机

状态(while 版本)

i=1
while [ i − l e 254 ] d o p i n g ‐ c 2 ‐ i 0.3 ‐ W 1192.168.4. i -le 254 ] do ping ‐c 2 ‐i 0.3 ‐W 1 192.168.4. ile254]dopingc2i0.3W1192.168.4.i &>/dev/null
if [ ? − e q 0 ] ; t h e n e c h o " 192.168.4. ? -eq 0 ];then echo "192.168.4. ?eq0];thenecho"192.168.4.i is up"
else
echo “192.168.4.$i is down”
fi
let i++
done
14、编写脚本测试 192.168.4.0/24 整个网段中哪些主机处于开机状态,哪些主机处于关机状态(多进程版)

#!/bin/bash

编写脚本测试 192.168.4.0/24 整个网段中哪些主机处于开机状态,哪些主机处于关机

状态(多进程版)

#定义一个函数,ping 某一台主机,并检测主机的存活状态
myping(){
ping ‐c 2 ‐i 0.3 ‐W 1 $1 &>/dev/null
if [ $? -eq 0 ];then
echo “$1 is up”
else
echo "KaTeX parse error: Expected 'EOF', got '}' at position 15: 1 is down" fi }̲ for i in {1..2…i &
done

使用&符号,将执行的函数放入后台执行

这样做的好处是不需要等待ping第一台主机的回应,就可以继续并发ping第二台主机,依次类推。

15、编写脚本,显示进度条

#!/bin/bash

编写脚本,显示进度条

jindu(){
while :
do
echo -n ‘#’
sleep 0.2
done
}
jindu &
cp -a $1 $2
killall $0
echo “拷贝完成”
————————————————
版权声明:本文为优快云博主「baiduoWang」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/yugemengjing/article/details/82469785

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值