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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Android 的CompoundButton(抽象类按钮)、StringBuffer(字符串变量)「建议收藏」

    Android 的CompoundButton(抽象类按钮)、StringBuffer(字符串变量)「建议收藏」1、写在前面的话本人40岁纯小白一枚,最近对AndroidAPP有了兴趣,目前的任务:通过AndroidStudio利用Apchepoi、EasyExcel等第三方库,编写APP,实现移动端APP与后台Excel的数据交互。这次利用CSDN平台记录下自己的成长。纯属小白,有概念或者描述错误,希望大佬们不吝赐教,再此谢过。2、任务目标目前正在学习这本书,在做P110页的作业时,发现的问题:作业要求,点击“进入主页”的按钮,一次性获取已近选取的多选框的text属性,然后Toast出

    2022年7月18日
    10
  • 常见电商项目的数据库表设计(MySQL版)

    常见电商项目的数据库表设计(MySQL版)常见电商项目的数据库表设计(MySQL版)简介:目的:电商常用功能模块的数据库设计常见问题的数据库解决方案环境:MySQL5.7图形客户端,SQLyogLinux模块:用户:注册、登陆商品:浏览、管理订单:生成、管理仓配:库存、管理电商实例数据库结构设计:电商项目用户模块用户表涉及的实体改进1:第三范式:将依赖传递的列分离出来。比如:登录…

    2022年6月20日
    30
  • 类加载器的方法_JS加载器

    类加载器的方法_JS加载器packagecom.tech.load.def;/***@authorlw*@since2021/12/3*/publicclassUserImpl{static{System.out.println(“UserImplinit…”);}}packagecom.tech.load.def;/***@authorlw*@since2021/12/3*/publicclassDe..

    2022年9月5日
    2
  • 【收藏】FFmpeg从入门到精通——进阶篇,SEI那些事儿

    【收藏】FFmpeg从入门到精通——进阶篇,SEI那些事儿原文链接:SEI 

    2022年6月26日
    33
  • Idea激活码最新教程2023.2.1版本,永久有效激活码,亲测可用,记得收藏

    Idea激活码最新教程2023.2.1版本,永久有效激活码,亲测可用,记得收藏Idea 激活码教程永久有效 2023 2 1 激活码教程 Windows 版永久激活 持续更新 Idea 激活码 2023 2 1 成功激活

    2025年5月26日
    1
  • QQ空间照片提取_怎么获取QQ的url

    QQ空间照片提取_怎么获取QQ的url对于搞前端开发的人来说,获取qq空间图片的url可谓是轻而易举的事情,我想到的方法有:1.进入qq空间,然后查看网页源代码,然后搜索一下qq号码,然后就知道组装形式了。2.进入qq空间,然后直接F12,然后根据qq空间图像定位到对应的代码处,直接看到组装形式。3.直接对着图片右击,然后复制图片url,哈哈,更简单。

    2022年8月10日
    2

发表回复

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

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