一 数值运算 这里【】和[ ]一样 中间的空格一定要注意 2018.5.14
这里我就用三种 (前两个只能做整数运算)
(1) $[10+10] $[20/5] $[20*2] $[10%8] $[$RANDOM%20] #可用echo显示结果
%为取余这个应用非常厉害 $[A%B] 取余数大小不会超过B,结合RANDOM随机数,可以获得小于B的岁随机数
(2)let x++ 变量x自加1 let x-- 变量x自减1 #脚本中计数很好用
(3)bc计算器(可以计算小数)
echo "10+100" | bc echo "100/10" | bc echo "3.2-0.8" | bc
除法时不显示小数点后位数,须加scale=X显示小数点后X位 echo "10/8" | bc
echo "scale=2;10/8" | bc
二 逻辑运算 (与或非)
A||B 命令A执行失败,才执行B rpm -qa | grep httpd || echo httpd未安装
A&&B 命令A执行成功,才执行B 【 a == a 】 || echo haha
A;B 命令A执行,命令B执行 顺序执行无牵制关系
这里练习课上的案例:当登陆用户超过3时报警发邮件给root
#!/bin/bash
users=`who | wc -l`
[ $users -gt 3 ] && mail -s 危险 root root <<EOF 可以给公网邮箱发前提连接外网 /var/spool/mail/root
有三个以上用户登录系统
EOF
crontab -e * * * * * /root/error.sh 放入周期性计划任务每分执行
三 条件测试
字符串: == != -z字符为空,用于变量值判断 !-z
数字: -lt -le -ne -eq -gt -ge
目录文件: -d目录存在为真 -e目录或文件存在为真 -f文件存在为真 【 -f /etc/hostname 】
-r可读为真 -w可写为真 -x可执行为真 (r和w对root无效,对普通用户有效)
echo $? 可以查看执行返回值0正常,其他全错。