Shell脚本:for循环

news2024/12/25 9:23:39

shell脚本-for循环

  • 一、for循环:
    • 1.格式:
    • 2.实操:
    • 3.类c语言:

一、for循环:

1.格式:

(1)for 已知的循环次数场景

for 变量名 in 【 名称范围 】

do

命令序列(执行内容,若满足循环需要做什么动作)

done 循环结束的标志

(2)死循环:

for ((;;;))

2.实操:

(1)批量添加用户:用户名都放在users里,且密码设置都是123456
for i in $(cat /opt/users.txt)
do
useradd $i
echo 123456 | passwd --stdin $i
done
[root@localhost opt]# sh test3.sh 
useradd:用户“billkin”已存在
更改用户 billkin 的密码 。
passwd:所有的身份验证令牌已经成功更新。
useradd:用户“pp”已存在
更改用户 pp 的密码 。
passwd:所有的身份验证令牌已经成功更新。
useradd:用户“kritt”已存在
更改用户 kritt 的密码 。
passwd:所有的身份验证令牌已经成功更新。
useradd:用户“chanyeol”已存在
更改用户 chanyeol 的密码 。
passwd:所有的身份验证令牌已经成功更新。
useradd:用户“baekhyun”已存在
更改用户 baekhyun 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@test2 ~]# vim test.sh
for i in {1..5}
do
echo "$i"
done
[root@test2 ~]# bash test.sh 
1
2
3
4
5

3.类c语言:

(1)基本格式:

for (( 表达式1 ;表达式2;表达式3 ))

do

执行内容 若满足循环则做什么动作

done for循环结束标志

表达式1:定义变量并赋值

表达式2:决定是否循环

表达式3:决定循环变量如何改变,决定循环什么时候结束

[root@test2 ~]# vim test.sh
for (( i=0;i<=5;i++ ))
do
echo "$i"
done
[root@test2 ~]# sh test.sh 
0
1
2
3
4
5

(2)扩展:

1.用for循环做100以内能被3整除的数:
[root@test2 ~]# vim test2.sh 
for i in {1..20}
do
let q=$i%3
if [ $q -eq 0 ]
then
echo "$i"
else
echo "错误"
fi
done
[root@test2 ~]# sh test2.sh 
错误
错误
3
错误
错误
6
错误
错误
9
错误
错误
12
错误
错误
15
错误
错误
18
错误
错误
2.在指定范围内,计算出所有可以被指定的数字整除,不能整除的输出"错误",并且起始数字要大于结束数字
read -p "请输入起始数字:" start
read -p "请输入结束数字:" end
read -p "请输入整除的数字" num
if [ $start -gt $end ]
then
echo "起始数字不能大于结束数字"
fi  
for(( i=$start;i<=$end;i++ ))
do  
let q=$i%$num 
if [ $q -eq 0 ] 
then
echo "$i"
else
3.用for循环做一个99乘法表:
for (( i=1;i<=9;i++ ))
do
for (( j=1;j<=i;j++ ))
do
let num=$j\*$i
echo -ne "$j" "*" "$i" "=" "$num" "\t"
done
echo ""
done
[root@test2 ~]# sh test3.sh 
1 * 1 = 1  
1 * 2 = 2  2 * 2 = 4  
1 * 3 = 3  2 * 3 = 6  3 * 3 = 9  
1 * 4 = 4  2 * 4 = 8  3 * 4 = 12  4 * 4 = 16  
1 * 5 = 5  2 * 5 = 10  3 * 5 = 15  4 * 5 = 20  5 * 5 = 25  
1 * 6 = 6  2 * 6 = 12  3 * 6 = 18  4 * 6 = 24  5 * 6 = 30  6 * 6 = 36  
1 * 7 = 7  2 * 7 = 14  3 * 7 = 21  4 * 7 = 28  5 * 7 = 35  6 * 7 = 42  7 * 7 = 49  
1 * 8 = 8  2 * 8 = 16  3 * 8 = 24  4 * 8 = 32  5 * 8 = 40  6 * 8 = 48  7 * 8 = 56  8 * 8 = 64  
1 * 9 = 9  2 * 9 = 18  3 * 9 = 27  4 * 9 = 36  5 * 9 = 45  6 * 9 = 54  7 * 9 = 63  8 * 9 = 72  9 * 9 = 81

3.步长求100内偶数和:
在这里插入图片描述

在这里插入图片描述

(3)常用转义字符:

选项作用
-n表示不换行输出
-e输出转义字符,将转义后的内容输出到屏幕上
\b转义后相当于按退格键(backspace),但前提是"\b"后面存在字符
\c\c 不换行输出,在"\c"后面不存在字符的情况下,作用相当于 echo -n
\f换行,但是换行后的新行的开头位置连接着上一行的行尾
\v与\f相同
\t转以后表示插入tab,即横向制表符
\r光标移至行首,但不换行,相当于使用"\r"以后的字符覆盖"\r"之前同等长度的字符;但是当"\r"后面不存在任何字符时,"\r"前面的字符不会被覆盖

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

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

相关文章

Vue+springboot美发美容化妆品产品商城系统

不同的游客可以注册成为用户&#xff0c;然后可以查看&#xff0c;搜索自己想买的美发产品&#xff0c;加入购物车&#xff0c;下订单&#xff0c;收货&#xff0c;确认付款等购物流程。前台和后台的分析使得该系统结构清晰&#xff0c;即包含管理员和用户两个最基本的实体&…

C++递推基本概念和基础知识

目录 一、递推的概念 什么是递推算法&#xff1f; 解决递推问题的一般形式 二、递推和递归的区别 三、递推的实例 一、递推的概念 什么是递推算法&#xff1f; “递推”是计算机解题的一种常用方法。利用“递推法”解题首先要分析归纳出“递推关系”。如经典的斐波那契数…

MIT 6.824 lab distributed system 分布式系统(1)----lab1 MapReduce

https://youtu.be/cQP8WApzIQQ 概念 为什么需要分布式系统&#xff1f; high performanceparallelism&#xff1a;分布式系统可以实现CPU、内存、硬盘的并行运行fault tolerancephysical&#xff1a;security / isolated 分布式系统的困难 concurrency&#xff1a;各个并行的…

【观察】金融行业决策智能化“换挡提速” 华为全球智慧金融峰会2023值得期待...

当前以数字化、智能化为特征的第四次工业革命正“扑面而来”&#xff0c;数字经济浪潮对各行各业都产生着深刻影响。其中&#xff0c;金融行业作为现代经济的核心&#xff0c;也面临着一系列重大的挑战和机遇。 相比于其他企业&#xff0c;金融行业依靠数据分析和智能决策更好地…

某公司招了一个大专生,候选人要一万月薪,HR给申请一万二,HR领导说:给一万三!...

无良公司看多了&#xff0c;不禁让人怀疑&#xff1a;这个世界上还有好公司和好hr吗&#xff1f; 来看看这位hr的故事&#xff1a; 最近我们招了一个大专生&#xff0c;5年经验。他的工资是7000&#xff0c;候选人想要10000&#xff0c;我给申请了12000&#xff0c;结果审批不通…

用于分析脉冲类信号的二阶瞬态提取变换研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【TCP/IP】基于TCP的服务器端/客户端 II - 迭代服务器/客户端的概念与实现

1. 迭代服务器端/客户端 1.1 迭代服务器实现 1.2 迭代回声服务器端/客户端 2 回声客户端存在的缺陷 1. 迭代服务器端/客户端 在此之前&#xff0c;让我们先补充一个“回声服务器/客户端”的概念。回声&#xff08;echo&#xff09;服务器/客户端是指服务器端将客户端传输的字…

干货 | 郭晓雷:数智安全监管机制研究与思考

作者&#xff1a;郭晓雷本文约4300字&#xff0c;建议阅读8分钟 本文报告的主要内容关于数据安全&#xff0c;从学术或者技术的角度&#xff0c;更多地认为人工智能是数据处理的新技术&#xff0c;其应用会产生更加丰富的数据处理活动场景。 郭晓雷&#xff1a;今天报告的主要内…

【U8+】用友U8查询出库汇总表没有“计量单位”列

【问题描述】 在用友U8软件中&#xff0c; 查询存货核算模块下的【出库汇总表】后&#xff0c; 没有【计量单位】列&#xff0c; 但是汇总依据中&#xff0c;可以明显看到是包含“计量单位”的。 【解决方法】 首先明确一点&#xff0c;在查询条件中的【汇总依据及排序方式】…

可再生能源的不确定性和储能系统的时间耦合的鲁棒性和非预期性区域微电网的运行可行性研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

4.Python高频函数—数据分割split()

这里是针对dataframe 的数据的列中的字符串进行分割、分列&#xff0c;首先需要先用.str将这一列转换为类似字符串的格式&#xff0c;然后再使用split()方法。 Part.1 split()函数 根据分隔符或正则表达式对字符串进行拆分&#xff1b;返回数据框&#xff08;DataFrame&#x…

位运算总结

位运算 有符号整数无符号整数位移运算 1计算机中数字的表示 计算机只有0&#xff0c;1两个数字&#xff0c;所以我们常用的10进制计算 所以我们需表示10进制 要使用二进制来表示10进制数 进制表示法 我们假设一个 8 位的数据类型 方案1 2&#xff1a;0000 0010 我们会发现…

FPGA 的数字信号处理:Verilog 实现简单的 FIR 滤波器

该项目介绍了如何使用 Verilog 实现具有预生成系数的简单 FIR 滤波器。 绪论 不起眼的 FIR 滤波器是 FPGA 数字信号处理中最基本的模块之一&#xff0c;因此了解如何将具有给定抽头数及其相应系数值的基本模块组合在一起非常重要。因此&#xff0c;在这个关于 FPGA 上 DSP 基础…

FPGA驱动FT601实现USB3.0通信测速试验 提供工程源码和QT上位机源码

目录 1、前言2、FT601芯片解读和时序分析FT601功能和硬件电路FT601读时序解读FT601写时序解读 3、我这儿的 FT601 USB3.0通信方案4、vivado工程详解5、上板调试验证6、福利&#xff1a;工程代码的获取 1、前言 目前USB3.0的实现方案很多&#xff0c;但就简单好用的角度而言&am…

【见微知著】Android Jetpack - Navigation的架构设计

前言&#xff1a;人总是理所当然的忘记&#xff0c;是谁风里雨里&#xff0c;一直默默的守护在原地。 前言 Navigation 作为 Android Jetpack 组件库中的一员&#xff0c;是一个通用的页面导航框架。为单 Activity 架构而生的端内路由导航&#xff0c;用来管理 Fragment 的切换…

使用IDEA使用Git:Git使用指北——实际操作篇

Git使用指北——实际操作 &#x1f916;:使用IDEA Git插件实际工作流程 &#x1f4a1; 本文从实际使用的角度出发&#xff0c;以IDEA Git插件为基座讲述了如果使用IDEA的Git插件来解决实际开发中的协作开发问题。本文从 远程仓库中拉取项目&#xff0c;在本地分支进行开发&…

数据结构-Redis(一)

Redis除了性能强外&#xff0c;还有数据结构丰富多彩。 一、String 单值缓存 SET key value GET key 存对象 相信大家都存过&#xff0c;我们一般都是把对象value转json&#xff0c;获取的时候&#xff0c;再json转对象 SET user:1 value(json值) 但当我们需要对对象某…

推荐一款可匹敌国际大厂的国产企业级低无代码平台

文章目录 前言&#xff1a;亟待转型的软开创业者什么是低/无代码居高不下的企业级软件搭建成本1. 开发周期较长2. 在需求明确、软件修改、系统集成等方面存在多种卡点3. 数据管理混乱 无代码/低代码开发&#xff0c;时代的潮流无代码平台 smardaten1. smardaten 简介2. smardat…

ATK-MD0096-V21使用手册

ATK-0.96’ OLED_V2.0(V2.0 是版本号&#xff0c;下面均以 OLED 表示该产品)是 ALIENTEK 推出的一款高性能 OLED 显示模块&#xff0c;&#xff0c;尺寸小巧&#xff08;27mm26mm&#xff09;&#xff0c;结构紧凑&#xff0c;模块通过一个28P的排针与外部连接。 8080并口模式…

「Win」Windows环境变量介绍与操作

✨博客主页&#xff1a;何曾参静谧的博客 &#x1f4cc;文章专栏&#xff1a;「Win」Windows程序设计 相关术语 Windows环境变量&#xff1a;是一组用于存储系统和应用程序配置信息的变量&#xff0c;在Windows操作系统中起着非常重要的作用。本文将详细介绍Windows环境变量的概…