3.shell编程之循环语句与函数--for

本文介绍了Shell编程中的循环语句,特别是for循环的使用,包括其好处和格式,并展示了如何批量添加用户、根据IP地址检查主机状态、进行数字累加以及输出九九乘法表。此外,还讲解了循环控制语句和双重循环的控制方法。
摘要由CSDN通过智能技术生成

shell编程之循环语句与函数

for循环语句好处

  • 循环是一种控制流程的结构,用于重复执行一段代码

  • 遍历是一种数据操作的过程,用于访问并处理数据结构中的每个元素
    在某些情况下,循环和遍历可以结合使用,以便在循环中遍历数据结构并对其进行操作

  • 循环(Loop) 是计算机编程中非常重要的一种结构,其主要目的是为了简化代码编写,提高代码的重复利用率,以及提高程序的效率

  • 以下是使用循环的一些好处:

    • 重复执行代码:通过使用循环,可以在程序中重复执行一段代码,从而避免代码的重复编写
    • 减少程序代码量,提高程序的可读性和可维护性
    • 简化程序逻辑:使用循环可以使程序逻辑更加简洁明了,提高程序的可读性和可理解性,降低代码出错的可能性
    • 提高代码的重复利用率:通过将重复的代码封装在循环结构中,可以提高代码的重复利用率,减少代码冗余
    • 提高程序的效率:循环可以让程序自动化地执行重复任务,从而减少人工干预的次数,提高程序的效率和性能。

for循环语句格式

##读取不同的变量值,用来逐个执行同一组命令

for 变量名称 in 列表范围
do
	命令序列
done

##列表范围全部遍历结束,循环才结束
## 格式一
for i in {1..5}
do
	echo "$i"
done

## 类 c语言格式
for ((i=0;i<=5;i++))
do
	echo "$i"
done

## 死循环
for ((;;))

批量添加用户

  • 批量添加用户
    • 设置密码
    • 创建用户文件
vim user.txt
zhangsan
lisi
wangwu 


#!/bin/bash
for i in $(cat /opt/user.txt)     ##使用绝对路径
do
	useradd $i
	echo "123" | passwd --stdin $i
done

在这里插入图片描述

根据IP地址检查主机状态

  • ping通的IP地址放到 /opt/hosts 文件中
  • IP放在 ipadds.txt 文件中
  • 使用 ping 命令 检测
ping -c 3   -W 2



#!/bin/bash
for i in $(cat ipadds.txt)
do
	ping -c 3 -W 2 $i &> /dev/null
	if [ $? -eq 0 ]
		then 
			echo $i >> /opt/hosts
        else
        	echo "$i下线了"
	fi
done

在这里插入图片描述

数字累加

#!/bin/bash
sum=0
for i in {1..100}
do
	sum=$(($i+$sum))
done
echo $sum

在这里插入图片描述

常用转义字符
echo -n 表示不换行输出
echo -e 输出转义字符,将转义后的内容输出到屏幕上  echo -ne 
只有加了-e才能执行下面的转义符:
常用的转义字符如下:   
\b 转义后相当于按退格键(backspace),但前提是"\b"后面存在字符;"\b"表示删除前一个字符,"\b\b"表示删除前两个字符。

\c 不换行输出,在"\c"后面不存在字符的情况下,作用相当于 echo -n; 但是当"\c"后面仍然存在字符时,"\c"后面的字符将不会被输出。

\n 换行,被输出的字符从"\n"处开始另起一行。 
 
\f 换行,但是换行后的新行的开头位置连接着上一行的行尾;

\v 与\f相同;

\t 转以后表示插入tab,即横向制表符;

\r 光标移至行首,但不换行,相当于使用"\r"以后的字符覆盖"\r"之前同等长度的字符;但是当"\r"后面不存在任何字符时,"\r"前面的字符不会被覆盖

\\ 表示插入"\"本身;

九九乘法表输出

#!/bin/bash

for i in {1..9}
do
	for ((j=1;j<=i;j++))
	do
	echo -ne "$i*$j=$(($i*$j))\t"
	done
echo
done

在这里插入图片描述

循环控制语句

continue跳出循环

for i in {1..5}
do
	if [ $i -eq 3 ]
	then
	continue
	fi
echo "$i"
done

在这里插入图片描述

控制双重循环语句

for j in {1..5}
do
	for  i in {1..5}
	do
	if [ $i -eq 3 ]
	then
	continue 3      ###这个数字是循环的层数,就是for的次数
	fi
	echo "$i"
	done
done

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜海赤竹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值