|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!轮回把持之for轮回
语法布局1
forVariableinList
do
commands
done
语法布局2
forVariableinList;do
commands
done
这个List能够为列表、变量、下令等等
for轮回事前供应一个元素列表,尔后,利用变量往遍历此元素列表,每会见一个元素,就实行一次轮回体,直到元素会见终了
1、for轮回中的List为列表
eg1:显现/etc/inittab,/etc/rc.d/rc.sysinit,/etc/fstab三个文件各有几行;
1
2
3
4
5
#!/bin/bash
forFilein/etc/inittab/etc/rc.d/rc.sysinit/etc/fstab;do
Row=`wc-l$File|cut-d-f1`
echo"$Filehas:$Rowrows"
done
运转了局
2、for轮回中的List为变量
eg2:显现以后ID年夜于500的用户的用户名和id;
1
2
3
4
5
6
7
8
9
10
11
#!/bin/bash
useradduser1
useradduser2
useradduser3#新建几个用户便于测试了局
Id=`cat/etc/passwd|awk-F:{print$3}`
forVarin$Id;do
if[$Var-ge500];then
User=`grep"$Var>"/etc/passwd|cut-d:-f1`
echo"$Useruidis$Var"
fi
done
运转了局
3、for轮回中的List为下令
eg3:显现以后shell为bash的用户的用户名和shell。
显现了局为Bashuser:root,/bin/bash
剖析:先经由过程以bash开头的shell来断定用户,然后把这些用户一个一个的输入
1
2
3
4
5
6
7
8
#!/bin/bash
forVarin`grep"bash>"/etc/passwd|cut-d:-f7`;do
User=`grep"$Var"/etc/passwd|cut-d:-f1`
done
Shell=`grep"bash>"/etc/passwd|cut-d:-f7|uniq`
fornamein$User;do
echo"Bashuser:$name,$Shell"
done
运转了局
4、for轮回中的List为连续串的数字
eg4:分离盘算1-100之内偶数(Evennumber)的和,奇数(Oddnumber)的和.
剖析:当一个数与2取余用算时,为1则暗示该数为奇数,反之为偶数。
1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
EvenSum=0
OddSum=0
forIin`seq1100`;do
if[$[$I%2]-eq1];then
OddSum=$[$OddSum+$I]
else
EvenSum=$[$EvenSum+$I]
fi
done
echo"EvenSum:$EvenSum."
echo"OddSUm:$OddSum."
运转了局
5、C言语格局的for轮回
eg5:增加用户从user520增加到user530,且暗码与用户名一样。
1
2
3
4
5
6
#!/bin/bash
for((i=520;i<=530;i++));do
useradduser$i
echo"Adduser$i."
echouser$i|passwd-stdinuser$i&>/dev/null
done
运转了局:(能够切换一个用户尝尝暗码是不是和用户名一样)
其他轮回的格局以下,一切这些轮回纯熟把握一种轮回便可。
while轮回下令的格局
whiletestcommand
do
othercommand
done
until轮回的下令格局
untiltestcommand
do
othercommand
done
一个剧本的口试题,列位博友能够把您的谜底复兴鄙人面(人人一同交换)
经由过程传送一个参数,来显现以后体系上一切默许shell为bash的用户和默许shell为/sbin/nologin的用户,并统计各种shell下的用户总数。
运转如basheg.shbash则显现了局以下
BASH,3users,theyare:
root,redhat,gentoo,
运转如basheg.shnologin则显现了局以下
NOLOGIN,2users,theyare:
bin,ftp,
欢迎大家来到仓酷云论坛! |
|