2015—01—28 Shell学习笔记 条件分支

条件测试举例
[ -f "$file" ] && echo 1||echo 2

[ -f "file1" -a -e "file2" ] && echo 1||echo 0    (两个存在为1)


[ -f "file1" -o -e "file2" ] && echo 1||echo 0    (一个存在为1)

[ -f "file1" ] || [ -e "file2" ]



[ 3 -ne 3 ] || {
    echo "I am oldboy !"
    echo "I am coming !"
    exit 1    
    }
[ 3 -ne 3 ] || {echo "I am oldboy !";    echo "I am coming !";    exit 1; } 放在同一行需要用分号隔开

#条件不成立,后面执行多个命令在大括号里面{}
[ 3 -ne 3 ] || (echo "I am oldboy !";    echo "I am coming !";    exit 1; )
#小括号也行,最常用的是大括号


字符串:
[ -n "file" ] && echo 1||echo 0     0     (not zero)
[ -z "file" ] && echo 1||echo 0     1     (zero)           字符串比较要加双引号

[ "file" = "file1" ]        = 号左右需要空格
[ "${#file1}" = "${#file2}" ] 判断字符串长度


判断文件在不在,目录在不在,并生成相应的目标文件


sh -x test.sh 查看调试过程
 
判断内存大小,低于100M就进行邮件报警
free -m 实际剩余内存:buffers/cache
free -m|awk '/buffer\// {print $NF}'

vim judge_system.sh
cur_memory=`free -m|awk '/buffer\// {print $NF}'`
chars="current memory is $cur_memory."
if[ "$cur_memory" -lt 100 ]
  then
    echo $chars
    echo $chars|mail -s "$chars" (邮件主题) abc@qq.com
fi

每分钟检查:crontab -e (到结尾)添加注释
#judge_system
* * * * * /bin/sh judge_system.sh(需要路径) >&/dev/null

Shell双分支if条件语句

单分支:
if 条件
  then
    指令集
fi
双分支:
if 条件
  then
    指令集
  else
    指令集
fi
特殊写法:if [ -f "$file" ];then echo 1;else echo 0;fi 相当于:[ -f "$file1" ]&& echo 1||echo 0

多分支结构
if 条件
  then
    指令
elif 条件
  then
    指令
else
   指令
fi


判断数的大小:
#/bin/sh
read -p "pls input two numbers:"a b
if [ a -gt b ]
then
    echo "yes,$a > $b"
elif [ a -lt b ]
then
    echo "yes,$a < $b"
else
    echo "yes,$a = $b"
fi


#/bin/sh
a=$1
b=$2
if [ $# -ne 2 ]
  then

    echo "Usage:sh $0 num1 num2"

    exit 1

fi


if [ $a -gt $b ]
then
    echo "yes,$a > $b"
elif [ $a -lt $b ]
then
    echo "yes,$a < $b"
else
    echo "yes,$a = $b"
fi
(传参并且对参数进行判断)


判断字符串是否为数字:(依据把数字去掉看剩下的长度是不是0)
[ -n "`echo $num|sed 's/[0-9]//g'`" -a -n "`echo $num2|sed 's/[0-9]//g'`" ] && echo \
"两个参数都必须为数字"&& exit 1



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值