Linux Shell循环结构

Linux Shell循环结构fi}&donewaitecho“MissionCompleted.”*for循环语句实现文件中批量用户创建“`shell[root@hdp-1shell]#catusers_from_file.shIFS=$’\n’forlinein`cat$1`doif[${#line}-eq0];thencontinuefiuser=`echo”$line”|awk'{print$1}’`pass=`echo”$line”|a

大家好,又见面了,我是你们的朋友全栈君。

3 循环结构

  • Shell语言支持四种循环语句:for、while、until、select
  • 工作中常用的是 for、while、until

for循环语法结构

  • for循环主要用于确定次数的循环
  • 第一种for循环的语法结构如下所示:
for 变量名 in 取值列表
do
	循环体
done
  • for循环语句实现批量主机ping探测
[root@hdp-1 shell]# cat for_ping.sh 
#!/bin/bash
for name in baidu 163 hao123
do
	{ 
   
	host=www.$name.com
	ping -c1 -w1 $host &> /dev/null
	if [ $? -eq 0 ];then
		echo "$host" | tee -a host.txt
	fi
	}&
done
wait
echo "Mission Completed."
  • for循环语句实现文件中批量用户创建
[root@hdp-1 shell]# cat users_from_file.sh 
IFS=$'\n'
for line in `cat $1`
do
if [ ${ 
   #line} -eq 0 ];then
continue
fi
user=`echo "$line" | awk '{print $1}'`
pass=`echo "$line" | awk '{print $2}'`
id $user &>/dev/nuil
if [ $? -eq 0 ] ;then
echo "user $user already exists"
else
useradd $user
echo "$pass" | passwd --stdin $user &> /dev/null
if [ $? -eq 0 ];then
echo "$user created"
fi
fi
done

while循环语句语法结构

  • while循环语句的基本语法为:
while 条件测试
do
    循环体
done
  • while循环语句会对条件测试进行判断,如果条件测试成立时,则执行do和done之间的循环体,直到条件测试不成立才停止循环。
  • while循环语句实现批量用户创建
[root@hdp-1 shell]# cat while_user.sh 
#!/bin/bash

while read line
do
	if [ ${ 
   #line} -eq 0 ];then
		echo "NULL"
		continue
	fi
	user=`echo $line | awk '{print $1}'`
	pass=`echo $line | awk '{print $2}'`
	id $user &>/dev/null
	if [ $? -eq 0 ];then
		echo "user $user already exists."
	else
		useradd $user
		echo "$pass"| passwd --stdin $user &>/dev/null
		if [ $? -eq 0 ] ;then
			echo "$user created ."
		fi
	fi
done < $1

until循环语句语法结构

  • until循环语句基本语法为:
until 条件测试
do
	循环体
done
  • until循环语句是在条件表达式不成立时,进入循环体执行指令,条件表达式成立时,终止循环。until的应用场景很罕见。
  • until循环语句测试远程主机可达性
[root@hdp-1 shell]# cat until_ping.sh 
#!/bin/bash

host=www.baidu.com
until ping -c1 -w1 $host &>/dev/null
do
	sleep 1
done
echo "$host up. "

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163962.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月24日 上午8:36
下一篇 2022年7月24日 上午8:36


相关推荐

  • 运维 如何选择最合适的服务器方案(一):服务器硬件配置

    运维 如何选择最合适的服务器方案(一):服务器硬件配置服务器运行什么应用 需要支持多少用户访问 需要多大空间来存储数据 我的业务有多重要 1 服务器运行什么应用 这是首先需要考虑的问题 在这里你要根据服务器的应用类型 也就是用途 来决定服务器的性能 容量和可靠性需求 我们按照前端服务器 应用程序服务器 数据服务器的常见基础架构来讨论 1 1Web 前端 正常情况下 我们认为大多数 Web 前端服务器 Front end 对服务器的要求不大 例如

    2026年3月26日
    2
  • EPPlus 使用小结

    EPPlus 使用小结文章目录简介导入导出简单导出样式格式化其他总结简介EPPlus是一个使用OpenOfficeXML(xlsx)文件格式,能读写Excel2007/2010文件的开源组件,在导出Excel的时候不需要电脑上安装office,它的一个缺点就是不支持导出2003版的Excel(xls)。导入这部分相对简单,直接看下代码:using(ExcelPackagepackage=newExcelPackage(existingFile)){ExcelWorksheetworksh

    2022年6月15日
    757
  • python定义函数求和_Python定义函数实现累计求和操作

    python定义函数求和_Python定义函数实现累计求和操作一、使用三种方法实现0-n累加求和定义函数分别使用while循环、for循环、递归函数实现对0-n的累加求和1、使用while循环定义一个累加求和函数sum1(n),函数代码如下:2、使用for循环定义一个累加求和函数sum2(n),函数代码如下:3、使用递归函数定义一个累加求和函数sum3(n),函数代码如下:二、使用了三种实现累加求和的方法,分别定义了三个函数。1、对0-100实现累加求和,…

    2025年6月27日
    6
  • OpenClaw Docker部署方案:基于容器隔离与HTTPS的安全实践指南

    OpenClaw Docker部署方案:基于容器隔离与HTTPS的安全实践指南

    2026年3月14日
    2
  • 错误端口已被占用1080_端口已打开 错误1231

    错误端口已被占用1080_端口已打开 错误1231更新记录版本时间修订内容1.02018-3-28增加了方案二问题的提出【实验环境】:Win764bit也许你会碰到以下错误:本文给出2种解决方案。方案一既然说端口已被占用,那就需要找出是哪个程序占用了1080端口。打开cmd.exe,输入命令:netstat-aon|findstr"1080"最后一列就是PID了,…

    2026年1月15日
    6
  • java定义数组_java中数组的三种定义方式_java中数组的定义及使用方法(推荐)…

    java定义数组_java中数组的三种定义方式_java中数组的定义及使用方法(推荐)…描述java中数组的三种定义方式java中,数组是一种很常用的工具,今天我们来说说数组怎么定义[java]viewplaincopy/***数组的三种定义方法*1.数组类型[]数组名=new数组类型[数组长度];*2.数组类型[]数组名={数组0,数组1,数组2,数组3,。。。。};*3.数组类型[]数组名=new数组类型[]{数组0,数组1,数组2,。。。};**/p…

    2022年7月8日
    23

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号