码迷,mamicode.com
首页 > 系统相关 > 详细

shell编程中的控制判断语句

时间:2017-10-25 00:33:14      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:格式   目录文件   必须   分支   blog   否则   返回   cas   letter   

if

  • 单格式与嵌套
if 条件表达式;then #当条件为真时执行以下语句  
  命令列表  
else #为假时执行以下语句  
  命令列表  
fi

if 语句也可以嵌套使用  
if 条件表达式1;then  
    if 条件表达式2;then  
        命令列表  
    else  
        if 条件表达式3;then  
            命令列表  
        else  
            命令列表  
        fi  
    fi  
else  
命令列表  
fi 
  • 多分支格式
if test -f "$1"  ;then  
  lpr $1  
elif test -d "$1";then #elif 同else if  
  (cd $1;lpr $1)  
else  
echo "$1不是文件或目录"  
fi
  • case
case $newval in
1)          #这里是可能值1
echo 1
;;      #表示第一个分支结束
2)           #这里是可能值 2
echo 2
;;      #第二个分支结束
*)      #表示其他可能值,必须在最后,否则他后面的语句无法执行
echo unkown
esac    #case 语句结束
  • while /until
while 表达式
do
  命令列表
done 
Sum=0  
i=0  
while true #true是系统的关键词 表示真  
do  
  i=`expr $i + 1`  
  Sum=`expr $Sum + $i`  
  if [ $i = "100" ]; then 
    break;  
  fi  
done  
echo $i $Sum  
最后这个程序显示的是 100 5050  

下面将这个程序再改动一下  

Sum=0  
i=0  
while [ $i != "100" ]  
do  
  i=`expr $i + 1`  
  Sum=`expr $Sum + $i`  
done  
echo $i $Sum  
改动后的程序运算结果和上面是一样 但程序比上面的要简练  
在这个循环中还可以以until做为测试条件 它正好与while测试的条件相反,也就是当条件为假时将继续执行循环体内的语句,否则就退出循环体,下面还用这个例子.  
Sum=0  
i=0  
until [ $i = "100" ]  
do  
  i=`expr $i + 1`  
  Sum=`expr $Sum + $i`  
done  
echo $i $Sum  
当i不等于100时循环 就是当条件为假时循环,否则就退出,而第一个例子是当i不等于100  
时循环,也就是测试条件为真时循环.  

for

  • 枚举用法
for 变量 in 名字列表  
do  
  命令列表  
done 
for n in {1..10}
do
  echo $n
done

for letter in a b c d e;
do
  echo $letter
done
  •   文件用法 
for file in *
do
       echo $file
done
for File in a1 a2 a3 a4 a5  
do  
  diff aa/$File bb/$File  
done 
  •    累加格式
for (( i=1;$i<10;i++ ))
do
  echo $i
done 

for(( i=1;$i<10;i=$[`expr $i + 1`] ))
do
  echo $i
done
  • 其他循环控制语句

break 命令不执行当前循环体内break下面的语句从当前循环退出.  
continue 命令是程序在本循体内忽略下面的语句,从循环头开始执行.
 

  • 判断文件的属性  
格式:-操作符 filename  

-e 文件存在返回1, 否则返回0  
-r 文件可读返回1,否则返回0  
-w 文件可写返回1,否则返回0  
-x 文件可执行返回1,否则返回0  
-o 文件属于用户本人返回1, 否则返回0  
-z 文件长度为0返回1, 否则返回0.  
-f 文件为普通文件返回1, 否则返回0  
-d 文件为目录文件时返回1, 否则返回0  
  • 测试字符串  
字符串1 = 字符串2     当两个字串相等时为真  
字符串1 != 字符串2     当两个字串不等时为真  
-n 字符串           当字符串的长度大于0时为真  
-z 字符串         当字符串的长度为0时为真  
字符串           当串字符串为非空时为真 
  • 测试两个整数关系 
数字1 -eq 数字2     两数相等为真  
数字1 -ne 数字2     两数不等为真  
数字1 -gt 数字2     数字1大于数字2为真  
数字1 -ge 数字2      数字1大于等于数字2为真  
数字1 -lt 数字2      数字1小于数字2为真  
数字1 -le 数字2      数字1小于等于数字2为真  
  • 逻辑测试  
-a         与  
-o        或  
!        非

 

shell编程中的控制判断语句

标签:格式   目录文件   必须   分支   blog   否则   返回   cas   letter   

原文地址:http://www.cnblogs.com/sunada2005/p/7726192.html

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