2015—01—28 Shell学习笔记 条件分支
来源:互联网 发布:图书销售数据分析 编辑:程序博客网 时间:2024/05/18 03:09
条件测试举例
[ -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
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
[ -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
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
0 0
- 2015—01—28 Shell学习笔记 条件分支
- Shell 学习笔记三(条件分支语句)
- PHP学习笔记——巢状条件分支结构;
- shell学习笔记(五)—— shell条件测试
- PHP学习笔记——PHP单路分支和双路分支,else if多项条件分支结构;
- Shell学习笔记——算数运算与条件测试
- PHP学习笔记——多向条件分支结构switch子句;
- 【C++学习笔记】if条件分支
- shell脚本之条件语句if和分支语句case...esac【shell脚本的学习笔记三】
- shell学习笔记三 分支结构
- Python——条件分支
- Shell学习笔记之条件测试
- Shell 编程学习笔记:条件测试
- shell学习笔记--条件测试
- Shell入门之条件循环学习笔记
- Shell脚本学习笔记-条件判断
- C++ 学习笔记_0004_分支条件(分段求值、加班费)
- 学习笔记——分支预测入门
- flex builder 破解
- 如何缓解业务需求与系统结构的冲突
- 总账:日记账导入流程
- perl解决批量除去引物并生成FAST格式文件
- .Bat文件格式
- 2015—01—28 Shell学习笔记 条件分支
- Jconsole远程监控tomcat 的JVM内存(linux、windows)
- 数据结构——赫夫曼树
- 【设计模式学习笔记十三】【结构型模式】【代理模式(Proxy)】
- apk 签名备忘
- 每一个程序员需要了解的10个Linux命令
- UVA 11468 Substring AC自动机+概率DP
- qt 5 各种字符操作
- 修改DotNetBar控件库中MetroForm的边框颜色