没事就要多做多练,Shell脚本循环例题做一做
Shell脚本循环例题
一、示例1
计算从1到100所有整数的和。
脚本命令
#!/bin/bash a=1
sum=0
while [ $a -le 100 ]
do
sum=$[$sum + $a]
let a++
done
echo $sum

二、示例2
提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和。
脚本命令
#!/bin/bash a=0
sum=0
read -p "请输入数字(0-100):" num
if [ $num -gt 0 -a $num -lt 100 ];then
while [ $num -le 100 ] && [ $a -le $num ]
do
sum=$[$sum + $a]
let a++
done
echo $sum
fi


三、示例3
求从1到100所有整数的偶数和、奇数和。
脚本命令
#!/bin/bash i=0
ji=0
ou=0
for i in {1..100}
do
if [ $[$i % 2] -eq 0 ];then
ou=$[$ou + $i]
else
ji=$[$ji + $i]
fi
let i++
done
echo "奇数和为 $ji"
echo "偶数和为 $ou"


四、示例4
执行脚本输入用户名,若该用户存在,输出提示该用户已存在;若该用户不存在,提示用户输入密码,建立用户并设立其密码。
脚本命令
#!/bin/bash read -p "请输入你的用户名:" yonghu
cat /etc/passwd | grep $yonghu &> /dev/null
a=$?
while [ $a -eq 0 ]
do
echo "该用户已存在"
exit
done while [ $a -ne 0 ]
do
useradd $yonghu
read -p "请输入新用户密码:" passwd
echo $passwd | passwd --stdin $yonghu
exit
done


五、示例5
检测指定范围主机是否通信,并将通信的主机ip输出到文件abc.txt中。
脚本命令
#!/bin/bash
for i in 192.168.30.{10..20}
do
ping -c 3 -i 0.5 -w 2 $i &> /dev/null
if [ $? -eq 0 ];then
echo $i >> ~/abc.txt
else
echo "$i 不在线"
fi
done

六、示例6
用户输入密码,脚本判断密码是否正确,输入正确提示正确信息,连续输错3次则报警。
脚本命令
#!/bin/bash
i=0
mm=123456
for i in 1 2 3
do
read -p "请输入密码:" mima
if [ $mm -eq $mima ];then
echo "密码正确"
exit
fi
done
echo "错误三次,无法进入"


七、示例7
编写能够自动生成一个8位随机密码的脚本。
脚本命令
#!/bin/bash Str="abcdefghigklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ0123456789"
for i in {1..8}
do
num=$[$RANDOM % ${#Str}]
tmp=${Str:num:1}
passwd+=$tmp
done echo "随机密码为:" $passwd


八、示例8
写个逛淘宝选购商品脚本,每家商店有五种商品选购(衣服500元,裤子400元,鞋子350元,帽子150元,袜子50元),每次选购完或不买都会提示用户是否继续逛下一家商店,如果不再继续逛的话进行购物车结算总额。
脚本命令
#!/bin/bash a=0
i=1
sum=0
while [ $a -eq 0 ]
do
echo "欢迎来到第 $i 家商店!"
read -p "是否要进店选购?(yes/no)" en
while [ $en = "yes" ]
do
echo "1:衣服¥500"
echo "2:裤子¥400"
echo "3:鞋子¥350"
echo "4:帽子¥150"
echo "5:袜子¥50"
echo "6或其他:放弃选购" read -p "请选择你需要的商品序号:" num
case $num in
1)
echo "选购衣服成功!"
sum=$[$sum + 500]
;;
2)
echo "选购裤子成功!"
sum=$[$sum + 400]
;;
3)
echo "选购鞋子成功!"
sum=$[$sum + 350]
;;
4)
echo "选购帽子成功!"
sum=$[$sum + 150]
;;
5)
echo "选购袜子成功!"
sum=$[$sum + 50]
;;
*)
echo "放弃选购!"
esac
read -p "是否再继续选购(yes/no)" en done read -p "是否继续逛下一家店(yse/no)" enne
if [ $enne = "yes" ];then
let i++
else
echo -e "谢谢惠顾!\n您一共逛了 $i 家店。\n合计购物总额为 $sum元。"
exit
fi done


没事就要多做多练,Shell脚本循环例题做一做的更多相关文章
- shell脚本-循环选择语句
shell脚本-循环选择语句 过程式编程语言: 顺序执行 选择执行 循环执行 注:条件中的变量,可以在执行语句中使用,不用在加上"$". if语句 根据命令的退出状态来执行命令 单 ...
- 3.shell脚本循环试题
shell脚本循环试题 1.计算从1到100所有整数的和 #!/bin/bash a=0 for i in {1..100} #1到100 #每次循环变量i的值也为循环次数 do a=$[ $a + ...
- shell脚本循环和信号
条件判断 if 条件1:then COMMAND elif 条件2:then COMMAND else COMMAND(:) : 表示pass 不执行任何命令 fi 读取用 ...
- shell脚本循环处理文件数据
有一个日志文件为: # cat data.log 需要提取出里面的数据,写shell脚本实现这个功能: #!/bin/bash OLD=$IFS IFS=$'\n' for entry in $(ca ...
- [Shell] shell 脚本循环恢复的问题
在一个shell脚本中,我大概执行了如下一个脚本: ...} do ...} do ...} do done done done 假设上面的sleep 10秒就是代表我的程序需要执行10秒之久.而现在 ...
- shell脚本循环嵌套
嵌套循环 在循环语句内使用任意类型的命令,包括其他循环命令,叫做嵌套循环.因为是在迭代中迭代,需要注意变量的使用以及程序的效率问题. 下面举一个for循环嵌套for循环的例子: wangsx@SC-2 ...
- 使用shell脚本循环处理文本
公司是使用puppet来进行配置管理, 某天修改完puppet后领导回复: 我们有一个文档cabinet.txt记录了物理机器所在的机柜, 除了文档里的其他机器都是虚拟机或云服务器, 对虚拟机的pup ...
- shell脚本循环执行mysql语句
参考资料:Shell脚本中执行mysql语句 需求:数据库里有张数据表存储的是用户对电影的评价(user_id movie_id rating time),但是我现在要每部电影的总评分. 解决方法: ...
- shell脚本--循环结构
shell的循环结构有while和for两种 for循环 #!/bin/bash #文件名:test.sh i=4 for i in 2 4 6 8 10 do echo $i done echo $ ...
随机推荐
- Python发送SMTP邮件指南
SMTP(Simple Mail Transfer Protocol)简单邮件传输协议,Python内置对SMTP的支持,可以发送纯文本文件,HTML邮件以及附带文件. 一.两个模块 Pyth ...
- 目标检测coco数据集点滴介绍
目标检测coco数据集点滴介绍 1. COCO数据集介绍 MS COCO 是google 开源的大型数据集, 分为目标检测.分割.关键点检测三大任务, 数据集主要由图片和json 标签文件组成. c ...
- CUDA统一内存分析
CUDA统一内存分析 PascalMIG 如 NVIDIA Titan X 和 NVIDIA Tesla P100 是第一个包含页 GPUs 定额引擎的 GPUs ,它是统一内存页错误处理和 MIG ...
- 运用iGuard防御ADS权限维持
权限维持是一门庞大的学问,当攻击者在入侵服务器获得主机权限后,往往会想尽办法隐藏其入侵途径以维持权限.权限维持的一般手段包括构造文件包含漏洞.构造远程任意代码执行漏洞.构造SQL注入点.利用系统自启动 ...
- [NOIP2010 提高组] 机器翻译
问题描述 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章. 这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换.对于每个英文单词,软件会先在内存中查 ...
- C#中关于Cookie的理解
本文链接出自:https://www.cnblogs.com/xiangzhe-C/p/4230042.html 1.Cookie简介 Cookie 提供了一种在 Web 应用程序中存储用户特定信息的 ...
- 浪潮 ClusterEngineV4.0 任意命令执行
1.浪潮ClusterEngineV4.0 任意命令执行 影响版本 ClusterEngineV4.0 2.漏洞影响 远程代码执行 3.复现 fofa语句 title='TSCEV4.0' 抓包构造e ...
- 深入Netty逻辑架构,从Reactor线程模型开始
本文是Netty系列第6篇 上一篇文章我们从一个Netty的使用Demo,了解了用Netty构建一个Server服务端应用的基本方式.并且从这个Demo出发,简述了Netty的逻辑架构,并对Chann ...
- 基于webpack5封装的cli工具packx
安装 用 npm / yarn 安装: $ npm install -D packx $ yarn add -D packx 特性 基于 webpack5 支持 less,sass 支持 spa/mp ...
- 精通Proteus仿真器件制作(3)DLL仿真模型创建
有些人可能会想:什么叫做"DLL仿真模型之原理图符号"?我想学高级的C++创建DLL(动态链接库)仿真模型的方式,你别拦着我,不然,我可就人挡Kill人,佛挡Kill佛啦!原理图符 ...