Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1269150
  • 博文数量: 125
  • 博客积分: 4372
  • 博客等级: 上校
  • 技术积分: 1055
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-12 09:53
文章分类

全部博文(125)

文章存档

2019年(3)

2018年(2)

2017年(1)

2016年(2)

2015年(4)

2014年(11)

2013年(5)

2012年(4)

2011年(12)

2010年(10)

2009年(17)

2008年(17)

2007年(25)

2006年(12)

分类: 系统运维

2011-07-22 15:18:48

1.循环语句
#!/bin/ksh
n=1
while [[ n -lt 5 ]]
do
echo $n;
let n=n+1
done
输出1至5,也可以改写为如下,效果一样.
#!/bin/ksh
n=1
while (( n < 5))
do
echo $n;
let n=n+1
done
其中,let n=n+1可以用((n+=1))代替.
 
2.if-elif-else-fi语句
例1:
#!/bin/ksh
echo please enter the file name and press enter
read file
if  [ -f "$file" ]
then
  echo $file is a regular file
elif [ -d "$file"]
then echo $file is a dirctory
fi
执行脚本,提示输入文件名,回车.
例2:
#!/bin/ksh
file="$1"
if  [ -f "$file" ]
then
  echo $file is a regular file
elif [ -d "$file"]
then echo $file is a dirctory
fi
在执行脚本的时候跟上待检测的文件名.
 
3. for语句
例3:
#more test5.sh
#!/bin/ksh
for varfile in *.sh
do
echo $varfile
done
显示当前路径下以.sh结尾的文件.
执行跟踪以set -x 打开,以set +x 关闭跟踪功能.
也可以以sh -x test5.sh 打开跟踪执行,这会使得SHELL显示每个被执行到的命令,并在前面加"+"号,紧跟着一个空格(此符号可以通过修改PS4变量来修改).执行后显示如下:
#sh -x test5.sh
+ echo test1.sh
test1.sh
+ echo test2.sh
test2.sh
+ echo test3.sh
test3.sh
显示当前路径下有3个以.sh结尾的文件.
 
4.read 语句
例4:
#!/bin/ksh
while IFS=: read user pass uid gid fullname homedir shell
do
echo "$user - $uid"
done < passwd
执行后输出如下:
root - 0
daemon - 1
bin - 2
sys - 3
adm - 4
uucp - 5
guest - 100
nobody - 4294967294
lpd - 9
lp - 11
invscout - 6
snapp - 200
nuucp - 7
ipsec - 201
esaadmin - 8
oracle - 301
weblogic - 501
 
 
阅读(1804) | 评论(0) | 转发(0) |
0

上一篇:ORACLE10g巡检脚本

下一篇:awk 程序模型

给主人留下些什么吧!~~