sehll循环语句

MaxKey+JeecgBoot单点登录实战:手把手教你从零配置到账户同步 本文提供MaxKey与JeecgBoot单点登录(SSO)的实战整合指南。详细讲解从MaxKey应用注册、JeecgBoot前后端改造,到最终实现账户同步的完整步骤,重点解决Shiro配置、令牌交换等关键问题,帮助企业构建统一、可扩展的身份管理体系。 阅读详情

一、for循环

在实际工作中,经常会遇到某项任务需要多次执行的情况,而每次执行时仅仅是处理的 对象不一样,其他命令相同。例如,根据通讯录中的姓名列表创建系统账号,根据服务器清 单检查各主机的存活状态当面对各种列表重复任务时,使用简单的 if 语句已经难以满足要求,而顺序编写全部代 码更是显得异常烦琐、困难重重。

for循环语句

一、for循环
1、语法结构
(1)列表循环
(2)不带列表循环
(3)类C风格的for循环

遍历格式

for 变量名 in {list}
do
    command
done

例子1

// {  } 里面不识别变量  
for i in {a..c}
do
        echo $i
done

例子2

//seq 5=1、2、3、4、5序列

for i in `seq 5`  
do      
        echo $i
done

例子3

//seq可以引用变量
a=10
for i in `seq $a`    
do
        echo $i
done

for 变量名 in a b c
do
    command
done

例子1 

//i这里实际没有调用,所以就相当于in后面几个参数就循环几次
for i in a b c   
do
        echo 123
done

例子2 

//这里调用到i变量了,所以就正常显示i的值(a\b\c)
for i in a b c    
do
        echo $i
done

1.1、案例


1.1.1、例1:打印1-5这5个数字

#!/bin/bash
read -p "第一种方法1 ,第二种方法2"  a
case  $a  in
1)
echo "这是第一种方法"
for i in  {1..5}
do
echo $i
done
;;
2)
echo "这是第二种方法"
for i in `seq 5`
do
echo $i 
done
;;

*)
echo "这是第二种方法"
for i in 1 2 3 4 5
do
echo $i
done
;;
esac

1.1.2、例2打印5次hello world

注意:虽然我们定义了一个变量i,但是没有使用它,它只是控制循环次数

#!/bin/bash
for i in {1..5}
do
echo "hello world"
done

1.1.3、例3:打印abcde

#!/bin/bash
for i in {a..e}
do
echo $i
done

1.1.4、例4:输出0-50之间的偶数

#!/bin/bash
for i in {0..50..2}
do
echo $i
done

附1

小技巧:花括号{}和seq在for循环的应用:

  • for i in {1..50..2} 1-50的奇数
  • for i in {2..50..2} 1-50的偶数
  • for i in {10..1}  1-10倒序排列
  • for i in $(seq 10)  1-10正序排列
  • for i in $(seq 10 -1 1) 1-10倒序排列
  • for i in $(seq 1 2 10) 1-10的奇数,中间为步长
  • for i in $(seq 0 2 10) 1-10的偶数,中间为步长
#!/bin/bash
for i in  $(seq 0 5 10)
do
echo $i
done

 

1.1.5、不带列表循环执行时由用户指定参数和参数的个数决定的

格式

for 变量名 
do
    command
done

1.1.5.1、 例1:打印hello

把2、4赋值给变量i,i有值了它就开始执行do..done了

#!/bin/bash
for i
do
echo $i "hello"
done

1.1.6、类C风格的for循环

格式

for ((expr1;expr2;expr3))
do
       command
done

expr1:定义变量并赋初值
expr2:决定是否循环
expr3:决定循环变量如何改变,决定循环什么时候退出

1.1.6.1、打印1-5
#!/bin/bash
for ((i=1;i<=5;i++))
do
echo $i 
done

注:i++ : i=1+1 先赋值再运算 i=1 之后 再 +1
       ++i : 1+1=i 先运算再赋值 1+1 之后 再 =i

1.1.6.2、例2:打印1-10的奇数
#!/bin/bash
for ((i=1;i<=10;i+=2))
do
echo $i 
done

附2:

类C风格运算符用法
++    自身变量+1
--  自身变量-1
+=5    自身变量+5
-=5    自身变量-5
*=5    自身变量*5
/=5    自身变量/5
%=5    自身变量%5

1.1.6.3、例3:计算1-100的奇数和
#!/bin/bash
sum=0
for ((i=1;i<=100;i+=2))
do
let sum=$i+$sum
done
echo "1-100奇数 $sum"

1.1.6.4、例1、批量添加用户两种方式

1、以后缀批量变化添加

#!/bin/bash
for i in {1..5}
do
useradd stu$i
echo "123" | passwd -stdin stu$i
done

 2、脚本批量添加用户

zhang
wang
li
zhao
#!/bin/bash
USER=$(cat /opt/user.txt )
for name in $USER
do
useradd $name
echo "123" | passwd --stdin $name &>/dev/null
done

3、批量删除用户的脚本

1.1.6.5、例2、根据 IP 地址列表检查主机状态

-c 发送包的数量;-i 发送 ping 包间隔;-W 超时时间

1、根据文本查看

192.168.88.19
192.168.99.11
#!/bin/bash
LIST=$(cat /opt/pinghost.txt )
for ip in $LIST
do
ping -c 3 -i 0.2  -w 1  $ip  &>/dev/null
        if  [ $? = 0 ];then
        echo "可以ping通"
        else
        echo "不可以ping通"
        fi
done

2、根据段查看

#!/bin/bash
NETWORK=$1
for ip in {1..255}
do
ping -c 3 -i 0.2  -w 1  $NETWORK.$ip  &>/dev/null
        if  [ $? = 0 ];then
        echo "可以ping通"
        else
        echo "不可以ping通"
        fi
done

1.1.6.6、用户输入密码,脚本判断密码是否正确,输入正确提示正确信息,连续输错3次则报警
#!/bin/bash
PASSWD=123456
for ((i=1;i<=3;i++))
do
read -p  "请输入密码" passwd
if [[ $passwd ==  $PASSWD   ]];then
echo "正确"
exit
else
echo "密码错误"
fi
done
echo "操作过多"

1.1.6.7、幸运会员

二、while语句的结构

while循环
1、语法结构
2、死循环

(1)语法结构(3种)

while循环一般用于有条件判断的循环,若判断条件为真,则进入循环,当条件为假就跳出循环

语法结构

while 表达式
do
    command
done

2.1、例1:打印1-5

#!/bin/bash
i=0
while [[ $i -le 5 ]]
do
echo $i
let i++
done

2.2、输出1-100之间不能被3整除的数字

#!/bin/bash
i=0
while [[ $i  -le  100  ]]
do
if [[ $i%3 -eq 0  ]];then
let i++
else
echo   $i
let i++
fi
done

2.3、打印1-100的和

#!/bin/bash
i=0
sum=0
while [[ $i  -le  100  ]]
do
let  sum=$[sum+i]
let i++
done
echo $sum

注意:let  sum=$[sum+i]    “=” 不能分开

2.4、监控某服务(httpd)运行状态

2.5、while死循环

 写一个永远为真的表达式,1等于1这个条件永远为真,所以这个脚本会一直循环下去

格式

while [ 1 -eq 1 ]
do
    command
done

while true
do
    command
done

while :
do
    command
done

2.6、例1:猜数字,猜不对就一直猜

【学习系列】SAP RAP 8:行为定义-Authorization Control 本文介绍了SAP RAP中的授权控制实现方法,主要分为读取操作和修改操作两种场景。读取操作通过ABAP CDS的数据控制语言(DCL)实现,使用访问控制对象限制数据可见范围;修改操作则通过行为定义中的权限检查,包括全局授权、实例授权和预检查三种方式。文章详细说明了如何使用DCL创建访问控制规则,并通过实例演示了全局授权和实例授权的代码实现方法,以及预检查功能在数据更新前的权限验证。这些授权控制机制共同确保用户只能访问和操作其权限范围内的数据,有效保障系统安全性。 阅读详情

相关推荐

VN5620硬件接口介绍

VECTOR, VN5620, 诊断

Fecostar的博客 7473

linux shell seq的用法

用于产生从某个数到另外一个数之间的所有整数 例一: # seq 1 10 结果是1 2 3 4 5 6 7 8 9 10 例二: #!/bin/bash for i in `seq 1 10`; do echo $i; done 或者用 for i in $(seq 1 10) 也可以 seq -f, --format=FORMAT      use printf st

轻飘飞扬 3万+

c++11 无锁队列

/************************************************************************* &gt; File Name: lockfreequeue.cpp &gt; Author: &gt; Mail: &gt; Created Time: Wed 08 Aug 2018 11:38:08 AM CST ********...

qq_35728402的博客 5021

shell中for循环

1、 for((i=1;i<=10;i++));do echo $(expr $i * 4);done 2、在shell中常用的是 for i in $(seq 10) 3、for i in ls 4、for i in ${arr[@]} 5、for i in $* ; do 6、for File in /proc/sys/net/ipv4/confaccept_redirects:’ 18...

weixin_45284484的博客 2202

CDO批量处理nc文件:5分钟搞定CMIP6数据双线性插值(附完整代码)

本文详细介绍了如何使用CDO工具链中的`remapbil`命令,快速实现CMIP6数据的批量双线性插值处理。通过环境配置、核心操作步骤、高级优化技巧及典型报错解决方案,帮助科研人员高效处理大规模nc文件,显著提升气象数据处理效率。

weixin_29267307的博客 291

AMD MI50 Linux ROCm 6.4 手动编译与大模型推理实战

GPU加速计算是现代AI推理的核心基础,其性能依赖于硬件架构、驱动栈与运行时环境的深度协同。ROCm作为AMD开源GPU计算平台,采用‘自下而上’的Linux生态集成路径,强调对上游内核、编译器与固件的强耦合。MI50基于Vega 20(gfx900)架构,虽具备32GB HBM2高带宽显存与14.7 TFLOPS FP16算力,但因ROCm官方支持策略转向CDNA架构,自6.5版本起被移出支持列表,仅ROCm 6.4仍提供实验性兼容——这使其成为Linux下部署私有大模型的关键‘最后一班船’。本文围绕MI

weixin_32770423的博客 363

作业心得

1.在用grep进行查询时,注意规范(见上一条博客) 2.for i in ` seq 1 50 ` 在1-50中循环取值(也可以在查询结果中循环,结合|通道使用 ) 3.for i in seq 反引号cat /etc/passwd反引号 4.if 后跟 then fi,for 跟do done 5.seq a b c ,a是以a开头。b是每b个输出一个,c是最后的范围 6...

qq_39092546的博客 335

银河麒麟系统下VSCode安装全攻略:从下载到桌面快捷方式(附常见问题解决)

本文详细介绍了在银河麒麟系统下安装和优化VSCode的全流程,包括环境准备、安装策略、权限管理、桌面快捷方式创建以及系统级性能调优。特别针对国产系统环境提供了常见问题解决方案和必备插件推荐,帮助开发者高效配置开发环境。

v6b7n8m9q0的博客 1133

Shell编程之循环语句for与while

前言:这一章呢稍微有点繁琐,和拐友们玩一下for循环语句,因为接下来的代码更加的繁琐和困难,if语句已经不够用啦,所以我们这章来玩一下for循环语句,它可以极大的减轻我们的负担。 一.for循环语句 1.1for语句的用法 用法: 1.读取不同的变量值,用来逐个执行同一组命令 2.for循环经常使用在已经知道要进行多少次循环的场景 3.使用for循环语句时,需要指定一个变量及可能的取值列表,针对每一个不同的取值重复执行相同的命令序列,直到变量值用完退出循环。在这里,“取值列表”称为

weixin_67474417的博客 2716

组合导航 | RTK、IMU与激光雷达组合导航算法:原理、实现与验证

当激光雷达噪声增加至0.1m时,系统位置RMSE仅上升18%,验证了滤波算法的鲁棒性[110]:融合方案在RTK信号丢失30秒后,位置误差仍控制在1.5m内,显著优于IMU单独导航[28]:ESKF框架能有效建模传感器误差特性,状态向量需包含外参与时间偏移等关键参数。:传感器标定精度直接影响系统性能,建议每3个月进行一次重新标定。:IMU预积分与特征匹配是系统实时性的关键瓶颈,需重点优化。:维持10秒窗口内的关键帧,平衡精度与实时性[132]:特征匹配占总耗时的65%,可通过。

尘世冰封的专栏 941

解决QT5调用软键盘qvirtualkeyboard时崩溃问题ime_pinyin::MatrixSearch::init_user_dictionary

但是偶尔也会出现问题,譬如,我这边在Arm系统上跑着程序的时候,点击用户编辑框,输入法弹出,但是再次点击密码输入框,连程序都给我崩溃了。只是提示错误:void ime_pinyin::MatrixSearch::init_user_dictionary。首先确保你的Arm版QT库已经编译了软键盘,位置有时候就和lib同级目录,qtvirtualkeyboard。QT5中的软键盘qvirtualkeyboard很好用,很多人开发嵌入式端应用的时候都会用到。此外还有很多其他的输入法字典,像。

有问题或资源连接有缺失的可以私信公众号新潮看世界获取 2059

循环与函数

二、while循环 三、until循环 跟while相反,条件为假进入循环,条件为真退出循环 四、循环控制语句 for循环一般会搭配条件判断语句和流程控制语句一起执行,那么就会出现需要跳过循环和中止循环的情况,控制循环的命令有以下3个继续,但不会执行循环体内下面的代码了,开始重新开始下一次循环打断,马上停止本次循环,执行循环体外的代码直接跳出程序,后面可跟状态返回码如exit 1等等 函数定义完之后并不会自动执行,需要调用才行,好处在于可以写一段功能代码作为函数,有需要就直接调用 定义的时候哪怕出现语

liwenbin19920922的博客 638

深入解析逆时偏移(RTM)算法及其在C++中的实现

逆时偏移(Reverse Time Migration, RTM)是一种高级地震成像技术,广泛应用于地震勘探中。RTM通过逆时传播波场来构建地震子波,能够提供更高分辨率和更精确的地下构造图像。本文将详细介绍RTM的基本原理,并通过C++代码示例,深入解析如何实现和优化RTM算法。希望这篇文章能够为地球物理学家和C++开发者提供有价值的参考。

qq_38334677的博客 1526

SEHLL脚本之while循环语句和until循环

这个形式的while语法可以用for循环代替,这样更方便。如上图所示,是while循环的一个示例。

ZHX2285的博客 699

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

shell编程之循环语句

循环语句有for、while和untile三种不格式的循环语句,前两种的执行效果一样,,用法上存在区别,until使用较少,与前面的语句刚好相反,注意break和continue和exit的使用方式。跳出当前的循环,继续当前循环,此次循环后面将不会再输出,循环继续开始,退出当前终端,在执行的脚本的时候,尽量使用路径执行,如果使用source执行的话话,会把内部的变量加载到系统环境执行,那么将会退出终端程序。

一个闲人 533

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

sehll编程入门

1. Shell是什么 Shell是用户与内核进行交互操作的一种接口,目前最流行的Shell成为bash Shell。Shell同时也是一门编程语言<解释型的编程语言>,即shell脚本。一个系统可以存在多个shell,可以通过cat /etc/shells命令查看系统中安装的shell,不同的shell可能支持的命令语法是不相同的。 1.1 第一个shell脚本 创建一个文...

weixin_30505225的博客 211

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

sehll 数组

linux shell在编程方面比windows 批处理强大太多,无论是在循环、运算。已经数据类型方面都是不能比较的。 下面是个人在使用时候,对它在数组方面一些操作进行的总结。   1.数组定义   [chengmo@centos5 ~]$ a=(1 2 3 4 5) [chengmo@centos5 ~]$ echo $a 1   一对括号表示是数组,数组元素用“空格”符号分割开

赶路人儿 607

sehll脚本生成数据加载到Hive表中

shell脚本生成数据加载到Hive表中一、hive中建表二、编写shell 脚本三、上传文件至hdfs 一、hive中建表 创建数据库: create database sales_dw; use sales_dw; 建表: create table dim_date ( date_sk int, date date, month tinyint, month_name varchar(16), quarte

我玩的很开心的博客 1058

sehll脚本99乘法表zb小技巧

1) 脚本以 #!/bin/bash 开头 (2) 脚本需要有可执行权限 编写第一个 Shell 脚本 ü 需求说明: 创建一个 Shell 脚本, 输出 hello world! vim hello.sh #!/bin/bash echo "hello,world~"

weixin_55931251的博客 238

Linux Shell 结构化语句模板

01. if-then 如果command的退出状态码是0,则进入判断执行commands,否则执行脚本中的下一个命令。其中command的执行结果无论对错均会显示到界面。 if command then commands fi if command; then commands fi 02. if-then-else 如果command的退出状态码是0,则进入判断执行commands,否则执行下一个分支判断。其中command的执行结果无论对错均会显示到界面。 if command then c

qq_42226855的博客 285

shell编程----for语句

目录标题1. for语句 1. for语句 for循环的两种形式: 第一种:c语言风格的for循环 for((exp1;exp2;exp3)) do statements done   说明:exp1、exp2、exp3是三个表达式,其中exp2是判断条件,for循环根据exp2的结果来决定是否继续下一次循环;statements是循环体语句,可以有一条,也可以有多条;do和done是she...

weixin_43384009的博客 203

linux跟踪程序脚本,linux sehll之脚本命令跟踪

#!/bin/bash#set -x 打开跟踪,set +x 关闭跟踪。对于复杂的脚本来说这个命令很有用,可以知道命令到哪里出了 #问题set -x #打开跟跟踪echo "hello ,welcome" #第一条命令set +x #关闭跟踪echo "test set -x end...

weixin_32541663的博客 154

sehll 小脚本的编写{基础}

1.模拟linnux登录shell #/bin/bash echo -n "login:" read name echo -n "password:" read passwd if [ $name = "cht" -a $passwd = "abc" ];then echo "the host and password is right!" else echo "input is e...

weixin_30776863的博客 85

荡来了一只sehll脚本:写一个脚本,它能够执行简单计算器的功能

还加了一点自己的修改,荡来的那个有些问题。 道客巴巴的文件链接 这个为exe4.sh中的内容 #! /bin/bash while : do read -p &quot;Please Input the first number: &quot; n1 expr $n1 + 0 &amp;amp;&amp;gt; /dev/null if [ $n1 -gt 0 -a $n1 -lt 100 ] then ...

竦貊的博客 799

Linux——Bash Shell脚本 for循环

Bash Shell脚本 for循环

weixin_61895606的博客 720

浅谈shell-脚本

1.shell程序以下面的行开始    #!/bin/sh或者是!#!/bin/bash(#!用来告诉系统它后面的参数是用来执行该文件的程序) 2.要使脚本可执行   chmod + xfilename ( 3.再输入./filename来执行脚本 以#开头的表示注释 变量名=值 (不需要对变量进行声明) 取出变量值可以加一个美元符号($)在变量前面 如$(a)

Allureyou的博客 342
上一篇: 【Shell 编程三剑客】shell-awk命令详解(理论+实战)
下一篇: shell脚本免交互
YCyjs
博客等级 码龄2年 4496粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值