Chinaunix首页 | 论坛 | 博客
  • 博客访问: 986583
  • 博文数量: 195
  • 博客积分: 4890
  • 博客等级: 上校
  • 技术积分: 2221
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-09 15:34
文章分类

全部博文(195)

文章存档

2014年(1)

2013年(8)

2012年(22)

2011年(9)

2010年(54)

2009年(101)

我的朋友

分类: LINUX

2009-08-30 11:02:31

控制流结构
if语句
语句格式:
if 条件1           如果条件1为真
then              那么
       命令1       执行命令1
elif   条件2       如果条件1不成立,条件2为真
then               那么
       命令2       执行命令2
else               如果条件1,2均不成立
       命令3       那么执行命令3
fi                 完成
 
注:if语句必须以单词fi结尾
 
例子:
#!/bin/bash
echo -n "please input your name:"
read NAME
if [ "$NAME" = "" ];then
 echo "you don't input your name!"
else
 echo "your name is $NAME!"
fi 
 
 
#!/bin/bash
echo -n "please input your name:"
read NAME
if [ -z "$NAME" ] || [ "$NAME" = "" ];then
  echo "you don't input your name!"
elif [ "$NAME" = "root" ];then
  echo "hello root!"
elif [ "$NAME" = "liyongfeng" ];then
  echo "hello liyongfeng"
else
  echo "you don't input root or liyongfeng! but hello $NAME"
fi
 
if [] 方框里面不要忘记前后的空格
 
 
case语句
case语句格式
 
case in
   模式1)
      命令1;;
   模式2)
      命令2;;
esac
 
 
例子:
#!/bin/bash
#case select
echo -n "please input a number 1 to 3:"
read ANS
case $ANS in
1)
  echo "you selcet 1"
  ;;
2)
  echo "you select 2"
  ;;
3)
  echo "you selcet 3"
  ;;
y|Y)                            y或者Y,不能使用||
  echo "you input $ANS"
  ;;
*)
  echo "`basename $0`:this is not between 1 to 3" >&2
  exit;
  ;;
esac
basename命令 - strip directory and suffix from filenames,即去除文件名的目录部分和后缀部分。返回一个字符串参数的基本文件名称。
 
for循环语句
for循环语句的一般格式
 
for 变量名 in 列表
do
    命令1
    命令2
done
 
例子:
#!/bin/bash
#forlist
for loop in 1 2 3 4 5
do
   echo "$loop"
done
for循环进行了5次,loop读入5次值
 
#!/bin/bash
#forlist
for loop in `cat *.txt`
do
   echo "$loop"
done
*.txt文件中文字以空格为结尾for执行一次循环
 
 
until循环语句
until循环语句格式
 
until 条件  do语句执行命令直到until条件为假(即until条件返回值不为0,判断条件为真返回值为0),跳出循环
do 
    命令1
    命令2
    ......
done
注:条件可为任意测试条件,测试发生在循环末尾,因此循环至少执行一次(until循环至少执行一次)
 
例子
#!/bin/bash
#until
#监控分区
part="/dev/sda1"
#得到盘柜使用分区
use=`df | grep "$part" | awk '{print $5}' | sed 's/%//g'`
echo $use
until [ "$use" -gt "95" ]
do
  echo "filesystem is nearly full!"
  use=`df | grep "$part" | awk '{print $5}' | sed 's/%//g'`
done
 

while循环语句
while循环语句格式
 
while 条件  执行命令1..直到while条件为真(即while条件返回值为0,判断条件为真返回值为0)跳出循环
do 
    命令1
    命令2
    ......
done
注:在while和do之间虽然只使用一个命令,但可以放几个命令,命令通常用作测试条件
例子
#!/bin/bash
#while_read
echo "ctrl+D退出输入"
while echo -n "请输入电影名字:";read film
do
   echo "${film}是一部好电影!"
done
 
执行结果:
[root@HNTX-JZ-SCMS7 root.adminssh]# ./while
ctrl+D退出输入
请输入电影名字:nihao
nihao是一部好电影!
请输入电影名字:nihao
nihao是一部好电影!
请输入电影名字:liyongfeng
liyongfeng是一部好电影!
请输入电影名字:
是一部好电影!
请输入电影名字:[root@HNTX-JZ-SCMS7 root.adminssh]#
 
 
阅读(790) | 评论(0) | 转发(0) |
0

上一篇:空间太小

下一篇:推荐blog

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