未挂载磁盘判断依据:fdisk里有,d没有的,就是没挂载的
#!/bin/bash
IP=$1
all_disks=`fdisk -l |egrep -v "/dev/loop0|swap|mapper"|egrep "磁盘 /dev|disk /dev"|awk '{print $2}'|awk -F ':' '{print $1}'|awk -F'/' '{print $3}'`
used_disks=`df -h|egrep -v "/dev/loop0|tmpfs|mapper|overlay|shm|devtmpfs"|awk 'NR>1{print $1}'|sed 's/[0-9]*//g'|awk -F'/' '{print $3}'`
for i in ${used_disks[@]}
do
c=$(echo ${all_disks[*]} | sed 's/\<'$i'\>//') #通过尖括号完全匹配数字,防止出现 2,23这种元素2都会被修改的情况
unset all_disks #清空all_disks 数组
all_disks=${c[@]} #将新的数组赋值给all_disks
done
echo "$IP未挂载的磁盘为:"${all_disks[*]}