《Shell编程实例 —— 自动检测并挂载硬盘》
1.实例
#!/bin/sh if [ ! -d "/mnt/data/" ];then mkdir -p /mnt/data fi MOUNT_DISK() { DISK_NAME=`lsblk -l | awk '{if ($3=="0") print}' | grep sd | awk '{print $1}'` if [ -b /dev/$DISK_NAME ];then echo mount /dev/$DISK_NAME /mnt/data mount /dev/$DISK_NAME /mnt/data chown -R xinda:xinda /mnt/data/ sync else echo /dev/$DISK_NAME 不是硬盘设备 fi } while true do sleep 2 IS_MOUNTED=`df -h | grep /mnt/data | wc -l` if [ $IS_MOUNTED -eq 0 ]; then echo "/mnt/data 未挂载!" MOUNT_DISK echo "MOUNT_DISK done!" elif [ $IS_MOUNTED -eq 1 ]; then echo "/mnt/data 已挂载!" sleep 60 else echo "/mnt/data 挂载错误! IS_MOUNTED = $(IS_MOUNTED) " fi sleep 3 done
2.部分命令解析
2.1 wc -l
Linux系统中的wc(Word Count)命令的功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出。
命令参数:
- -c 统计字节数。
- -l 统计行数。
- -m 统计字符数。这个标志不能与 -c 标志一起使用。
- -w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
- -L 打印最长行的长度。
- -help 显示帮助信息
- --version 显示版本信息