码迷,mamicode.com
首页 > 其他好文 > 详细

条件判断式if和循环语句while及其函数的应用

时间:2014-06-27 06:15:08      阅读:271      评论:0      收藏:0      [点我收藏+]

标签:循环   条件判断   

条件判断式

   if..then、case..esac  

    if..then 是最常见的条件判断式,就是当负某个条件判断的时候,就进行某项工作 ,其中"&&"代表AND,"||"代表or

    if....then..else...fi

    格式: 

if [条件判断语句]; then 当条件判断成立时,可以进行的命令工作内容;
fi       // 结束if条件判断

    例子:设定  A=3,判断,如果A要是等于3,就会显示3                              

if [ $A = 3 ]; then                                                          
            ehco "true"                                                            
fi

 1、当条件不满足时的条件判断                                          

if [ $A = 3 ]; the                                                           
    echo "true"  // 当A=3的时候就显示true                              
else                                                                         
    echo "error" // 当A不等于3的时候就显示error                        
fi

 2、当多个条件判断时  if..then..elif...then..fi

if [ $A = 3 ];then 
  echo "3"          //  当A等于3的时候,就显现3
elif [ $A = 4 ]; then 
  echo "4"          //  当A等于4的时候,就显现4
elif [ $A = 5 ];then
  echo "5"          //  当A等于5的时候,就显现5
else  
  echo "error"     //  当A即不等于3也不等于4也不等于5的时候,就显现error
fi

 3、当多层次的条件判断时,而且有多个既定的变量内容,就可以用到case..in..esac。它的语法如下:

case $变量名称 in 
    "第一个变量取值")
        语句 
        ;;            //  每个判断语句结束都要有双分号隔开    
    "第二个变量取值")
        语句                                          
        ;;
    *)             //  其它变量的取值*号表示  
        语句                                                                      
        exit                                          
        ;;
esac           // case的结尾

   例:假如A在2、3这2个数之间取值,假如A等于2就显示2,等于3就显示3,既不是2也不是3就显示other

read -p "input a: " A
case $A in 
  2)         
    echo "2"      // 如果A的取值为2,则就显示2
;;                //  每个判断语句结束都要有双分号隔开
  3)
    echo "3"     // 如果A的取值为3,则就显示3
;;
  *) 
    echo "other" // 如果A的取值即不为2也不为3,则就显示other
exit             //  退出判断
;;
esac

 

循环式

㈠循环式 while..do..done 、 until..do..done 、  for..do..done

   while循环就是当条件成立时,就不断的循环,直到条件不满足才停止循环,格式如下:

while  [ 条件判断] ; do 
    当条件满足的时候需要循环的程序
done

  

    例子:用户输入任意字符时,我们都显示,你输入的是: 只有当用户输入Q或q时,我们才退出:

#!/bin/bash
#
while [ "$A" != ‘Q‘ -a "$A" != ‘q‘ ]; do
    echo "Input:$A"
    echo            //  此行显示为空格
  read -p "Please input something: " A
done

 

  例子:求100内所有整数之和:

#!/bin/bash
#
declare -i SUM=0
declare -i A=1
while [ $A -le 100 ]; do  
    SUM=$[$SUM+$A]  
    let A++   //  让A不断的循环自加,直到A的值小与等于100的时候停止
done
    echo "SUM is $SUM"

㈡而与while相反就是until,它的意思就是,当条件不成立时,就进行循环

    until  [条件判断] do 

      当条件不成立时,就不断的循环的程序

    done

   for..in..do..done的用法 

     例子显示每一位用户的默认shell:

#!/bin/bash
#
for I in `cut -d: -f1 /etc/passwd`; do
    echo "$I:`grep "^$I\>:" /etc/passwd | cut -d: -f7`"
done



函数的应用

  写一个脚本:

  1、提示用户输入一个用户名;

  2、使用函数实现:

   判断一个用户是否存在,用户名通过参数传递而来;

   如果存在,就显示此用户的shell和UID

   如果不存在,就说此用户不存在;

#!/bin/bash
#
name() {
 if id $1 &> /dev/null; then
    echo `id -u $1`, shell: `grep "^$1\>:" /etc/passwd | cut -d: -f7` 
    return 0
 else
    echo "NO such this user."
    return 1
 fi
 }
read -p "Input a user" USER  
 until [ "$USER" = "q" -o "$USER" = "Q" ]; do
   name $USER
   read -p "New User: " USER
done

⑴条件测试:用[]将测试的条件括住,如:[2 + 3]

   整数的比较为双目操作,也就是多个整数比较:NUM1操作符NUM2

     -eq  等于   #test 2 -eq 3  

     -ne  不等于

-gt  大于

     -lt  小于

-ge  大于等于

-le  小于等于

⑵算术运算符

     +  加   -  减 *  乘   /   %  余数   ^  指数

 例子:2+3等于5的多种表示方法

       1、#sum=$[2+3]

          #echo $sum

       2、#sum=$((2+3))

          #echo $sum

       3、#let sum=2+3

          #echo $sum

  4、#expr 2 + 3  ----> 中间必须得有空格

 例子:5除以3的余数是否为0

   #[ $[5%3] -eq 0 ]   ----> 括符两边有空格


本文出自 “行 者--->” 博客,请务必保留此出处http://liumissyou.blog.51cto.com/4828343/1431084

条件判断式if和循环语句while及其函数的应用,布布扣,bubuko.com

条件判断式if和循环语句while及其函数的应用

标签:循环   条件判断   

原文地址:http://liumissyou.blog.51cto.com/4828343/1431084

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!