没事就要多做多练,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 $ ...
随机推荐
- newbee-mall开源项目被慕课网拿去做课程,然后我毫不知情,这又是什么骚操作?
万万没想到,这种事情会发生在我身上. 之前写过<开源囧事>系列而且已经写了四篇,四次开源囧事如下: <开源囧事(一)捅娄子了,写个bug被国家信息安全漏洞共享平台抓到了?> & ...
- PaddlePaddle推理部署
PaddlePaddle推理部署 飞桨推理产品简介 作为飞桨生态重要的一部分,飞桨提供了多个推理产品,完整承接深度学习模型应用的最后一公里. 整体上分,推理产品主要包括如下子产品 各产品在推理生态中的 ...
- 夜晚场景图像ISP增强算法
夜晚场景图像ISP增强算法 输入输出接口 Input: (1)图像视频分辨率(整型int) (2)图像视频格式(RGB,YUV,MP4等) (3)摄像头标定参数(中心位置(x,y)和5个畸变 系数(2 ...
- 适用于CUDA GPU的Numba例子
适用于CUDA GPU的Numba例子 矩阵乘法 这是使用CUDA内核的矩阵乘法的简单实现: @cuda.jit def matmul(A, B, C): """Perf ...
- 如何为应用选择最佳的FPGA(上)
如何为应用选择最佳的FPGA(上) How To Select The Best FPGA For Your Application 在项目规划阶段,为任何一个项目选择一个FPGA部件是最关键的决策之 ...
- 英特尔内存革新助平安云 Redis 云服务降本增效
英特尔内存革新助平安云 Redis 云服务降本增效 英特尔 傲腾 数据中心级持久内存的引入,为平安云的降本增效开启了一条新的道路.通过对平安云 Redis 数据库产品的支持,用户能享受到性能优异且价格 ...
- 『言善信』Fiddler工具 — 6、Fiddler界面布局详解【命令行和状态栏】
目录 1.命令行 2.状态栏 1.命令行 命令行在Fiddler的左下方的黑色窗口,也叫QuickExec,可以调用 Fiddler的内置命令. 这一系列内置的函数用于筛选和操作会话列表中的sessi ...
- 尚硅谷Java——宋红康笔记【day6-day10】
day6 一.数组的概述 1.数组的理解:数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理. 2.数组相关的概念: 数组名 元素 ...
- 【SQLite】教程06-SQLite表操作
创建表: CREATE TABLE 语句用于在任何给定的数据库创建一个新表.命名表.定义列.定义每一列的数据类型 查看表: 详细查看表: 重命名表: 删除表: 创建表并添加7条记录(第七条记录用了第二 ...
- Spring Boot WebFlux-01——WebFlux 快速入门实践
第01课:WebFlux 快速入门实践 Spring Boot 2.0 spring.io 官网有句醒目的话是: BUILD ANYTHING WITH SPRING BOOT Spring Boot ...