Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2288729
  • 博文数量: 218
  • 博客积分: 5767
  • 博客等级: 大校
  • 技术积分: 5883
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-01 14:44
文章存档

2012年(53)

2011年(131)

2009年(1)

2008年(33)

分类: Python/Ruby

2012-11-19 12:43:59

shell之if判断的总结
  shell if 判断总结与实例   if [ command ];then
shell if 判断总结与实例
if [ command ];then
   符合该条件执行的语句
  elif [ command ];then
   符合该条件执行的语句
  else
   符合该条件执行的语句
fi
[-d DIR ]     如果DIR存在并且是一个目录则为真 
[ -f FILE ]   如果FILE存在且是一个普通文件则为真 
[ -e dir||file] 如果指定的文件或者目录存在返回真
[ -z STRING ] 如果STRING的长度为零则为真 
[ -n STRING ] 如果STRING的长度非零则为真 
[ STRING1 = STRING2 ] 如果两个字符串相同则为真 
[ STRING1 != STRING2 ] 如果字符串不相同则为真 
[ ARG1 OP ARG2 ] ARG1和ARG2应该是整数或者取值为整数的变量,OP是-eq(等于)-ne(不等于)-lt(小于)-le(小于等于)-gt(大于)-ge(大于等于)之中的一个 
[ -r FILE ]   文件存在并且可读权限
[ -w FILE ]   文件存在并且可写权限
[ -x FILE ]   文件存在并且能执行权限  
注意:变量取值STRINGx 最好放在""内;
      []和STRING中间有空格;
      判断大小比如 -eq 千万注意一定要带"-",使用看下面的例子
1、if语句的基本结构实现:
#!/bin/bash
num=$(ps -ef | grep http | grep -v grep | wc -l)
if [ "$num" -lt  "11" ];then
 echo "haha"
  elif [ "$num" -gt  "11" ] && [  "$num" -lt  "15" ];then
 echo "no !"
else
 echo "great than 15"
fi
说明:[ "$num" -gt  "11" ] && [  "$num" -lt  "15" ] 等价于 [ "$num" -gt  "11"  -a  "$num" -lt  "15" ]
2、if判断结合read
#!/bin/bash
#echo -n "please input a num:"
#read num
#echo "input num is $num"
read -p "please input a num:" num
echo -e "input num is $num judging now"
if [ "$num" -lt "60" ];then
  echo "you are lost,please work harder!"
 elif [ "$num" -ge "60" ] && [ "$num" -lt "85" ];then
  echo "good job,baby!"
 elif [ "$num" -le "100" ] && [ "$num" -ge "85" ];then
  echo "pretty good,cheer"
 else 
  echo "input num is wrong"
fi
说明:通过echo 输出(#注销掉的)和read -p结果是一样的,只需要注意echo的参数设置。
      echo -e参数使输出中的反斜线(\)的说明起作用
      echo -n参数使引号后的内容接着输出(不换行)
 
3、文件属性判断
 #!/bin/bash
if [ ! -d /tmp/k ];then   \\注意空格,感叹号的前后都有一个空格,表示"非"的意思
 echo "k is not a document"
 else
 echo "you are right"
fi
阅读(2899) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~