Shell脚本文件检测实例讲解
1. echo $? 语句的作用
- 用来判断上一条命令执行命令是否成功,0为成功,1为失败
- 检测文件测试命令是否正确,如文件是否存在,0为存在,1为不存在
2. 检测文件是否存在,0为存在,其他为不存在
3. 常用的文件检测符号
- 格式: [ 操作符 文件或目录 ]
- -d: 测试是否为目录(Directory)
- -e: 测试目录或文件是否存在(Exist)
- -f: 测试是否为文件(File)
- -r: 测试当前用户是否有权限读取(Read)
- -w: 测试当前用户是否有权限写入(Write)
- -x: 测试当前用户是否有权限执行(Excute)
- -L: 测试是否为符号连接文件(Link)
4. shell检测文件是否存在,不存在就创建文件
#!/bin/bash
if [ -f ./file1 ]
then
echo "file1 is exists!"
else
echo "file1 is not exists!"
touch file1
fi
5 shell 检测文件光盘是否被挂载
#!/bin/bash
if [ -e /media/CentOS ]
then
echo "光盘已经被挂载"
else
echo "光盘没有被挂载"
mount /dev/cdrom /media &>/dev/null #没有就挂载上,同时屏蔽提示消息
fi
6. 常用的整数之间的比较符号
- 格式:[ 整数1 操作符 整数2 ]
- -eq: 等于(Equal)
- -ne: 不等于(Not Equal)
- -gt: 大于(Greater Than)
- -lt: 小于(Lesser Than)
- -le: 小于或者等于(Lesser Or Equal)
- -ge: 大于或者等于 (Greater Or Equal)
7. 整数比较实例
#!/bin/bash
age=30
if [ $age -ge 18 ]
then
echo "已经成年"
else
echo "还没有成年"
fi
8. 命令查看当前系统有多少个人登陆
- who命令查看当前登陆系统的终端数
- who | wc -l 统计输出的行数
9. 检测当前系统的磁盘占有率
#!/bin/bash
usespace=`df -Th | grep 'vda' | awk '{print $6}' | cut -d '%' -f1` #`表示运行命令取返回值`
if [ $usespace -ge 43 ]
then
echo "磁盘占有率超过阈值" | mail -s '磁盘报警' root@localhost
else
echo "磁盘状态正常"
fi
10. 常用的字符串之间的比较符
- = :相等的比较符号
- != :不相等的比较符号
- -z :为空的字符串比较符号
11. 字符串之间的比较实例
#!/bin/bash
read -p "请输入你的账号:" name
read -p "请输入你的密码:" pass
if [ $name = 'admin' ] && [ $pass = '123456' ]
then
echo "验证通过"
else
echo "用户名或者密码错误"
fi