前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux Shell循环结构

Linux Shell循环结构

作者头像
全栈程序员站长
发布2022-09-15 10:27:05
1.2K0
发布2022-09-15 10:27:05
举报
文章被收录于专栏:全栈程序员必看

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

3 循环结构

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

for循环语法结构

  • for循环主要用于确定次数的循环
  • 第一种for循环的语法结构如下所示:
代码语言:javascript
复制
for 变量名 in 取值列表
do
	循环体
done
  • for循环语句实现批量主机ping探测
代码语言:javascript
复制
[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循环语句实现文件中批量用户创建
代码语言:javascript
复制
[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循环语句的基本语法为:
代码语言:javascript
复制
while 条件测试
do
    循环体
done
  • while循环语句会对条件测试进行判断,如果条件测试成立时,则执行do和done之间的循环体,直到条件测试不成立才停止循环。
  • while循环语句实现批量用户创建
代码语言:javascript
复制
[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循环语句基本语法为:
代码语言:javascript
复制
until 条件测试
do
	循环体
done
  • until循环语句是在条件表达式不成立时,进入循环体执行指令,条件表达式成立时,终止循环。until的应用场景很罕见。
  • until循环语句测试远程主机可达性
代码语言:javascript
复制
[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.cn/163962.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 3 循环结构
    • for循环语法结构
      • while循环语句语法结构
        • until循环语句语法结构
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档