仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 533|回复: 8
打印 上一主题 下一主题

[shell编程] 来一发shell剧本编程之轮回把持布局

[复制链接]
透明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 20:18:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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,


欢迎大家来到仓酷云论坛!
飘灵儿 该用户已被删除
沙发
发表于 2015-1-15 21:32:07 | 只看该作者

来一发shell剧本编程之轮回把持布局

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

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-12 16:16

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表