发布时间:2014-09-05 13:34:55作者:知识屋
前面讨论e x p r时指出,循环时如果要加入计数,使用此命令。下面使用l s在f o r循环中列出
文件及其数目。
[root@localhost huangcd]# cat forcount
#!/bin/bash下面脚本即为嵌入f o r循环,这里有两个列表A P P S和S C R I P T S。第一个包含服务器上应用
的路径,第二个为运行在每个应用上的管理脚本。对列表A P P S上的每一个应用,列表
S C R I P T S里的脚本将被运行,脚本实际上为后台运行。脚本使用t e e命令在登录文件上放一条
目,因此输出到屏幕的同时也输出到一个文件。查看输出结果就可以看出嵌入f o r循环怎样使
用列表S C R I P T S以执行列表A P P S上的处理。
[root@localhost huangcd]# cat audit_run
#!/bin/bash
APPS="/apps/accts /apps/claims /apps/stock /apps/serv"
SCRIPTS="audit.check report.run cleanup"
LOGFILE=audit.log
MY_DATE=`date +%H:%M" on "%d/%m%Y`
for loop in $APPS
do
for loop2 in $SCRIPTS
do
echo "system $loop now running $loop2 at $MY_DATE"|tee -a $LOGFILE $loop $loop2
done
done
u n t i l循环执行一系列命令直至条件为真时停止。u n t i l循环与w h i l e循环在处理方式上刚好
相反。一般w h i l e循环优于u n t i l循环,但在某些时候—也只是极少数情况下, u n t i l循环更加
有用。
u n t i l循环格式为:
until 条件
命令1
. . .
d o n e
条件可为任意测试条件,测试发生在循环末尾,因此循环至少执行一次—请注意这一点。
这段脚本不断的搜寻w h o命令中用户r o o t,变量I S - R O O T保存g r e p命令结果。
如果找到了r o o t,循环结束,并向用户s i m o n发送邮件,通知他用户r o o t已经登录,注意
这里s l e e p命令用法,它经常用于u n t i l循环中,因为必须让循环体内命令睡眠几秒钟再执行,
否则会消耗大量系统资源。
[root@localhost huangcd]# cat until_who
#!/bin/bash
IS_ROOT=`who|grep root`
until [ "$IS_ROOT" ]
do
sleep 5
done
echo "watch it.roots in"|mail root
[root@localhost huangcd]# sh until_who
[root@localhost huangcd]# mail
Mail version 8.1 6/6/93. Type ? for help.
"/var/spool/mail/root": 3 messages 1 new 3 unread
U 1 logwatch@localhost.l Sat Oct 26 11:35 113/3545 "Logwat"
U 2 logwatch@localhost.l Wed Dec 11 09:49 90/3152 "Logwat"
>N 3 root@localhost.local Wed Dec 11 16:09 15/646
& 3
Message 3:
From root@localhost.localdomain Wed Dec 11 16:09:29 2013
Date: Wed, 11 Dec 2013 16:09:29 +0800
From: root <root@localhost.localdomain>
To: root@localhost.localdomain
watch it.roots in
w h i l e循环可用于读取键盘信息。下面的例子中,输入信息被设置为变量F I L M,按< C t r l -
D >结束循环。
[root@localhost huangcd]# cat whileread
#!/bin/bash
echo "type ctrl+d to terminate"
echo -n "enter your most like file:"
while read FILE
do
echo "yeah,great file the $FILE"
done
[root@localhost huangcd]# sh whileread
type ctrl+d to terminate
enter your most like file:ddfdfdf
yeah,great file the ddfdfdf
dfsf
yeah,great file the dfsf
w h i l e循环最常用于从一个文件中读取数据,因此编写脚本可以处理这样的信息。
假定要从下面包含雇员名字、从属部门及其I D号的一个文件中读取信息。
可以用一个变量保存每行数据,当不再有读取数据时条件为真。w h i l e循环使用输入重定
向以保证从文件中读取数据。注意整行数据被设置为单变量$ L I N E .。
linux一键安装web环境全攻略 在linux系统中怎么一键安装web环境方法
Linux网络基本网络配置方法介绍 如何配置Linux系统的网络方法
Linux下DNS服务器搭建详解 Linux下搭建DNS服务器和配置文件
对Linux进行详细的性能监控的方法 Linux 系统性能监控命令详解
linux系统root密码忘了怎么办 linux忘记root密码后找回密码的方法
Linux基本命令有哪些 Linux系统常用操作命令有哪些
Linux必学的网络操作命令 linux网络操作相关命令汇总
linux系统从入侵到提权的详细过程 linux入侵提权服务器方法技巧
linux系统怎么用命令切换用户登录 Linux切换用户的命令是什么
在linux中添加普通新用户登录 如何在Linux中添加一个新的用户
2012-07-10
CentOS 6.3安装(详细图解教程)
Linux怎么查看网卡驱动?Linux下查看网卡的驱动程序
centos修改主机名命令
Ubuntu或UbuntuKyKin14.04Unity桌面风格与Gnome桌面风格的切换
FEDORA 17中设置TIGERVNC远程访问
StartOS 5.0相关介绍,新型的Linux系统!
解决vSphere Client登录linux版vCenter失败
LINUX最新提权 Exploits Linux Kernel <= 2.6.37
nginx在网站中的7层转发功能