仓酷云

标题: 来一发shell剧本编程之轮回把持布局 [打印本页]

作者: 透明    时间: 2015-1-14 20:18
标题: 来一发shell剧本编程之轮回把持布局
如果您觉得本篇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,


欢迎大家来到仓酷云论坛!
作者: 飘灵儿    时间: 2015-1-15 21:32
标题: 来一发shell剧本编程之轮回把持布局
一定要学好命令,shell是命令语言,命令解释程序及程序设计语言的统称,shell也负责用户和操作系统之间的沟通。
作者: 愤怒的大鸟    时间: 2015-1-23 10:43
众所周知,目前windows操作系统是主流,在以后相当长的时间内不会有太大的改变,其方便友好的图形界面吸引了众多的用户。
作者: 谁可相欹    时间: 2015-1-31 19:07
让我树立了很大的信心学好这门课程,也学到了不少专业知识和技能。?
作者: 深爱那片海    时间: 2015-2-7 01:26
我们这一代90后,从小接触的是windows98,家里条件好的自己有电脑装的是2000,后来又有了XP,上大学时又有了win7。
作者: 爱飞    时间: 2015-2-19 20:57
最好先搜寻一下论坛是否有您需要的文章。这样可以获得事半功倍的效果。
作者: 飘飘悠悠    时间: 2015-3-6 15:57
对Linux命令熟悉后,你可以开始搭建一个小的Linux网络,这是最好的实践方法。Linux是网络的代名词,Linux网络服务功能非常强大,不论是邮件服务器、Web服务器、DNS服务器等都非常完善。
作者: 小魔女    时间: 2015-3-13 05:07
生成新的unispimsp.ksc。”另外得到回复后如果问题解决,向帮助过你的人发个说明,让他们知道问题是怎样解决的。
作者: 透明    时间: 2015-3-20 13:43
如果你想深入学习Linux,看不懂因为文档实在是太难了。写的最好的、最全面的文档都是英语写的,最先发布的技术信息也都是用英语写的。




欢迎光临 仓酷云 (http://www.ckuyun.com/) Powered by Discuz! X3.2