Linux shell编程 循环语句for while实例

news2024/11/27 23:46:35

while 循环创建用户

i=1
while [ $i -le 10 ]
do
useradd user${i}
echo "123456" | passwd --stdin user${i} &> /dev/null
let i++
done

猜测价格

[root@xue opt]# cat caijia.sh
price=$[RANDOM%100+1]  #0-32767
i=0
while true
do
  read -p "input the price" exp
  let i++

  if [[ $exp -gt $price ]]
        then
        echo '高了!'

  elif  [[ $exp -lt $price ]]
        then
        echo '低了!'

  else
        echo '猜对了'
        break
  fi
done
echo "你猜了$i 次"

 

 

网段持续检测

read -p "请输入一个网段(such like 192.168.80)" wangduan
for zhuji in {1..254}
do
  ping -c 3 -W 2 ${wangduan}.${zhuji} &> /dev/null
  if [ $? -eq 0 ]
  then
    echo "${wangduan}.${zhuji} is online!!!"
    echo ${wangduan}.${zhuji} >> /opt/serviceip.txt
  else
    echo "${wangduan}.${zhuji} is offline"
  fi
done

 

 完善代码,添加  {  }& 并发。

由于ping需要时间,一个个ping耗时太长,使用  {  }&  包裹ping语句,使其并发执行

read -p "请输入一个网段(such like 192.168.80)" wangduan
for zhuji in {1..254}
do
{               #✨
  ping -c 3 -W 2 ${wangduan}.${zhuji} &> /dev/null
  if [ $? -eq 0 ]
  then
    echo "${wangduan}.${zhuji} is online!!!"
    echo ${wangduan}.${zhuji} >> /opt/serviceip.txt
  else
    echo "${wangduan}.${zhuji} is offline"
  fi
  }&            #✨
done

多文件合并到一个文件

for sb in /opt/*.sh      #for循环查找文件
do
  cat "$sb" >> hebing.txt     #内容重定向到文本文件
done

 

显示文件夹所有文件 (在生产环境中不允许使用ll,ls命令。可以通过shell脚本获取)

for sb in *
 do
 echo "$sb"
 done

 改进,排除文件夹

for sb in *
do
 test -f $sb  #是否为文件 (排除目录)
 if [ $? -wq 0 ]
    then
    echo "$sb"
 fi
done
~

shell计算器

while true   ==   for ((;;))
#都可以死循环
while true
do

read -p '输入数字1   ' num1
read -p '选择加减乘除+—x/   ' jjcc
read -p '输入数字2   ' num2
if [ $jjcc == '+' ]
 then
 echo $(($num1+$num2))
fi
if [ $jjcc == '-' ]
 then
 echo $(($num1-$num2))
fi
if [ $jjcc == 'x' ]
 then
 echo $(($num1*$num2))
fi
if [ $jjcc == '/' ]
 then
 echo $(($num1/$num2))
fi
echo

done

优化版代码 

使用[[   ]]

变量全部加上"  "

符合语言规范

while true
do
  read -p "请输入第一个整数:" num1
  read -p "请输入运算符:加(+);减(-);乘(*);除(/);求余(%):" fh
  read -p "请输入第二个整数:" num2
  if [[ "$fh" == "+" ]]
  then
    echo "结果为:$(($num1 + $num2))"
  elif [[ "$fh" == "-" ]]
  then
    echo "结果为:$(($num1 - $num2))"
  elif [[ "$fh" == "*" ]]
  then
    echo "结果为:$(($num1 * $num2))"
  elif [[ "$fh" == "/" ]]
  then
    echo "结果为:$(($num1 / $num2))"
  elif [[ "$fh" == "%" ]]
  then
    echo "结果为:$(($num1 % $num2))"
  else
    echo "输入有误!"
  fi
done

 

 商店选购

选择是否进入商店。进入商店则选购产品。不进入商店则结算。显示花费了多少资金。

[root@xue opt]# cat shop.sh
sum=0
count=0
while true
  do
   read -p "是否进入商店?y/n   " enter
   if [ $enter == "y" ]
   then
         let count++
         read -p "输入商品数字 1.衣服500 2.裤子400 3.鞋子350 4.帽子150 5.袜子50   " sp
         case $sp in
         1)
         let sum+=500
         ;;
         2)
         let sum+=400
         ;;
         3)
         let sum+=350
         ;;
         4)
         let sum+=150
         ;;
         5)
         let sum+=50
         ;;
         *)
         break
         esac
   else break
   fi
   done
echo "共进入商店$count 次 ,共消费$sum 元"

 

小技巧seq命令

seq 1 2 10    #从1开始,每隔2,输出直到10
seq 2 3 10    #从2开始,每隔3,输出直到10

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/471057.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

尚融宝25-投资列表展示以及实现充值功能

目录 一、展示投资列表 (一)需求 (二)后端 (三)前端 二、充值功能 (一)需求 1、需求描述 2、流程 (二)充值 1、后端 2、前端 (三&…

第九章 C#脚本(下)

本章节我们说一说MonoBehaviour这个类,它的内部有很多方法用来执行不同的逻辑。Unity脚本从唤醒到销毁都有着一套比较完善的生命周期,添加任何脚本都要遵守生命周期法则!直白的讲,就是MonoBehaviour类中的方法的执行是有严格的顺序…

Windows强制删除文件夹

命令:rd/s/q 路径 如果文件较大,需要等待几分钟,但一定会删掉的。

使用Fork和GitHub完成团队项目开发

前提 拥有自己的GitHub账号项目组组长已经创建好了 一个远程仓库能够科学上网安装了Fork软件 基础步骤 该内容分为两个部分,分别为团队协作者(项目成员)和团队组织者(项目组长),我们首先来介绍作为项目成员…

Docker-Compose 了解 部署nginx与lnmp

Docker-Compose Docker-compose 简介YAML 文件格式及编写注意事项Docker Compose配置常用字段Docker Compose 常用命令Docker Compose 文件结构部署 composeDocker Compose 环境安装 compose部署nginx(1)准备依赖文件编写配置文件docker-compose.yml com…

学生无线耳机哪款好?两百左右适合学生党的无线耳机推荐

学生无线耳机哪款好?现如今,学生党也成为了蓝牙耳机的主要用户群体之一。接下来,我来给学生群体推荐几款两百左右的无线耳机,一起来看看吧。 一、南卡小音舱Lite2蓝牙耳机 参考价:299 南卡小音舱的音质和佩戴体验都在…

Vue过渡与动画的实现效果

使用 transition 标签配合 CSS3 过渡实现【不完整代码】: Vue 还提供了四个 class 类名,分别是进入的起点(v-enter)进入的终点(v-enter-to)离开的起点(v-leave)离开的终点&#xff…

纷享销客标讯通,大客招标经营的杀手锏

呀,对手都中标了,我咋才知道?呀,能不能预测目标客户的招标?呀,对手有什么客户可以挖一挖? 呀,ROI 300倍的奥秘是什么? 纷享销客标讯通,帮助企业&#xff1a…

射频基础(一)

目录 一、电磁波 二、直射波 三、反射波 四、绕射波 五、散射波 六、趋肤效应 七、多径效应 八、阴影效应 九、菲涅尔区 十、慢衰落和快衰落 一、电磁波 电磁波是能量的一种,凡是高于绝对零度的物体,都会释出电磁波。电与磁可说是一体两面,电…

85.qt qml-炫酷烟花粒子特效(支持多种爆炸模式(文字)、爆炸阴影、背景场景)

效果如下所示: 截图如下所示: 实现内容如下所示: 1.实现多个爆炸效果2.爆炸的时候增加光度阴影效果3.由于场景有湖面,所以还需要增加一个倒影粒子组首先我们来学习下,该示例中所需要常用的类型点 1.如何更改粒子生命周期时的颜色变换动画 方法有两种。 1.1通过colorTable和s…

在 PDF 中添加文本的 3 种简单方法

我们更喜欢将我们的文件保存为 PDF 并打印它,这样打印的文件将保持原始的完美结构。你不得不承认,有时候,当你打印一个 Word 文件时,它可能会打印出乱七八糟的排版,这对进一步的工作来说是令人沮丧的。 PDF在我们的日…

【Python基础篇】从Hello, world到函数几分钟看完就都会了~

大家好,我是辣条哥~ Python是一种高级编程语言,易于学习和使用。以下是Python入门基础的一小部分: 目录 安装Python:编写第一个Python程序变量和数据类型运算符算术运算符:比较运算符:逻辑运算符&#xff1…

[CDC 2018] 理解压缩对抗隐私

Understanding Compressive Adversarial Privacy | IEEE Conference Publication | IEEE Xplore 摘要 本文提出了一种新的隐私保护方法,称为 压缩对抗隐私(Compressive Adversarial Privacy,CAP),它结合了 压缩感知和 …

移动通信网络频段大全

01 5G NR 3GPP已指定5G NR 支持的频段列表,5G NR频谱范围可达100GHz,指定了两大频率范围: ①Frequency range 1 (FR1):就是我们通常讲的6GHz以下频段,被称为 sub 6GHz; •频率范围&…

TDA4VM/VH 芯片硬件 mailbox

请从官网下载 TD4VM 技术参考手册,地址如下: TDA4VM 技术参考手册地址 概述 (Mailbox 的介绍在 TRM 的第7.1章节) Mailbox 使用邮箱中断机制实现了 VM 芯片的核间通信。 Mailbox 是集成在 NAVSS0 域下的一个外设(NAVSS0 的说明可以查看&a…

(六)ArcCatalog应用基础——目录内容浏览

(二)ArcCatalog应用基础——目录内容浏览 目录 (二)ArcCatalog应用基础——目录内容浏览1.目录内容浏览2.地理数据浏览3.表格数据浏览3.1调整、冻结、排列3.2修改属性3.3表格数据统计3.4查询3.5数据字段的增删 1.目录内容浏览 Ca…

职责链设计模式解读

目录 问题引进 传统方案解决 OA 系统审批,传统的设计方案(类图) 传统方案解决 OA 系统审批问题分析 职责链模式基本介绍 基本介绍 职责链模式的原理类图 对原理类图的说明 职责链模式解决 OA 系统采购审批 应用实例要求 思路分析和图解(类图) 代码落地 …

局域网远程桌面工具推荐

有多种软件选项适用于局域网 (LAN) 中的远程桌面,包括 微软远程桌面、Splashtop、Teamviewer 等。 以下是根据性能、安全性、价格、品牌历史和其他因素对这些软件选项进行的详细比较和分析。 微软远程桌面: 微软远程桌面是专为 Windows 设备设计的远程…

题解,超星进程

A - Geometric Progression 思路&#xff1a;矩阵快速幂 构造[1,c]*[f(n-1)] [0,c] [c^(n-2)] ​ #include<bits/stdc.h> #include<iostream> using namespace std; typedef long long ll; ll a, x, MOD; struct matrix {ll a1, a2, b1, b2;matrix(ll a1, …

Day957.重构“烂代码” -遗留系统现代化实战

重构“烂代码” Hi&#xff0c;我是阿昌&#xff0c;今天学习记录的是关于重构“烂代码”的内容。 一、基于坏味道的重构 在重构时&#xff0c;要尽量先去识别《重构》中总结的二十几种坏味道&#xff0c;再用书中对应的重构手法去重构。可能会质疑&#xff0c;要不要这么教条…