#!/bin/bash
#比较两个数的大小
echo "please enter two number"
read a
read b
if (($a == $b))
then
echo "NO.1 = NO.2"
elif (($a > $b))
then
echo "NO.1 > NO.2"
else
echo "NO.1 < NO.2"
fi
执行结果
if后面的条件用两个括号代表表达式判断
双括号的特殊用法 (()) 增强括号的用法, 常用于算术运算比较. 双括号中的变量可以不使用 符 号 前 缀 , 只 要 括 号 中 的 表 达 式 符 合 C 语 言 运 算 规 则 , 支 持 多 个 表 达 式 用 逗 号 分 开 . 比 如 可 以 直 接 使 用 f o r ( ( i = 0 ; i < 5 ; i + + ) ) , 如 果 不 使 用 双 括 号 , 则 为 f o r i i n ‘ s e q 04 ‘ 或 者 f o r i i n 0..4. 再 如 可 以 直 接 使 用 i f ( ( 符号前缀, 只要括号中的表达式符合C语言运算规则, 支持多个表达式用逗号分开. 比如可以直接使用for((i=0;i<5;i++)), 如果不使用双括号, 则为for i in `seq 0 4`或者for i in {0..4}. 再如可以直接使用if (( 符号前缀,只要括号中的表达式符合C语言运算规则,支持多个表达式用逗号分开.比如可以直接使用for((i=0;i<5;i++)),如果不使用双括号,则为foriin‘seq04‘或者foriin0..4.再如可以直接使用if((i<5)),
如果不使用双括号, 则为if [ $i -lt 5 ]. [[]] 增强方括号用法, 常用于字符串的比较. 主要用于条件测试,
双括号中的表达式可以使用&&, ||, <, >等C语言语法. 比如可以直接使用if [[ $a != 1 && $a != 2 ]],
如果不适用双括号, 则为if [ $a -ne 1] && [ $a != 2 ]或者if [ $a -ne 1 -a $a != 2 ]
#删除当前目录下文件大小为0的文件
for filename in `ls`
do
#如果是文件夹则不处理
if test -d $filename
then
a=0
else
#如果是文件则获取文件的大小
b=$(ls -l $filename | awk '{print $5}')
if test $b -eq 0
then
rm $filename
fi
fi
done
这个``符号表示:中间为可执行的命令。
换成``执行也可以
#!/bin/bash
#如果系统内存小于1G发邮件报警
date=`date +%F" "%H%M`
ip=`ifconfig eth0 | grep inet | awk '{ print $2 }'`
mail="1050591937@qq.com"
total=`free -m | grep "Mem" | awk '{ print $2 }'`
used=`free -m | grep "Mem" | awk '{print $3}'`
free=total-used
if(( $free<1024 ))
then
echo "
date:$date
host:$ip
problem: total=$total,used=$used,free=$free" | mail -s "Memory Monitor" $mail
fi