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


相关推荐

  • C3P0连接池的配置与使用[通俗易懂]

    C3P0连接池的配置与使用[通俗易懂]1、下载c3p0-0.9.1.2.jar下载地址:http://download.csdn.net/detail/chunxiaqiudong5/96619222、添加配置文件c3p0-config.xml3、配置文件内容如下:1030100

    2022年6月1日
  • json数组转对象集合_解析json字符串转成对象集合

    json数组转对象集合_解析json字符串转成对象集合json数组转对象//使用alibabafastjson@Testpublicvoidtest3(){Stringstr=”[{‘aa’:’123′,’bb’:’456′},{‘aa’:789,’bb’:’112′}]”;List<Test1>tests=JSONArray.parseArray(str,Test1.class);for(Test1test:tests){System.

    2022年9月11日
  • 反转每对括号间的子串java_已知入栈序列求出栈序列

    反转每对括号间的子串java_已知入栈序列求出栈序列给出一个字符串 s(仅含有小写英文字母和括号)。请你按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串,并返回最终的结果。注意,您的结果中 不应 包含任何括号。示例 1:输入:s = “(abcd)”输出:“dcba”示例 2:输入:s = “(u(love)i)”输出:“iloveu”示例 3:输入:s = “(ed(et(oc))el)”输出:“leetcode”示例 4:输入:s = “a(bcdefghijkl(mno)p)q”输出:“apmnolkjihgfedcb

    2022年8月9日
  • PDB文件格式「建议收藏」

    PDB文件格式「建议收藏」PDBFiles:WhatEveryDeveloperMustKnowhttp://www.wintellect.com/CS/blogs/jrobbins/archive/2009/05/11/pdb-files-what-every-developer-must-know.aspxPDB文件:每个开发人员都必须知道的一什么是PDB文件大部分的开发人员应该…

    2022年6月2日
  • java整型转换成字符串_java整型转换成字符串

    java整型转换成字符串_java整型转换成字符串二、实验要求1、编写一个Java程序,在程序中进行字符串与数值型数据的转换。2、编写一个Java程序,在程序中通过键盘输入常用的数据,包括字符串、整数和……Strings=”10″;//字符串转换成数值型a=Byte.parseByte(s);b=Short.parseShort(s);//调用Short类的parseShort方法把s转换成短整型c…

    2022年10月19日
  • 775针cpu性能最好的_英特尔775针cpu性能排行

    775针cpu性能最好的_英特尔775针cpu性能排行排名型号评分1IntelCorei7995X@3.60GHz10,8622IntelXeonW3690@3.47GHz10,8283IntelCorei7990X@3.47GHz10,6544IntelCorei7980X@3.33GHz10,6075IntelXeonX5690@3.47GHz10,3146IntelCorei7980@3….

    2022年9月20日

发表回复

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

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