检查系统中是否添加了磁盘

检查系统中是否添加了磁盘

因此,我正在编写一个脚本,主要检查磁盘是否已添加到系统中,如果是,则对其执行某些操作(例如格式化磁盘或其他操作)。

所以,主要问题是......我如何列出没有任何分区的磁盘(或开发)?

我可以列出它们:

fdisk -l | grep -o '/dev/sd[a-z][0-5]'
/dev/sda1
/dev/sda2
/dev/sda5
/dev/sdb1

如何列出没有分区的磁盘?我尝试过这样的事情:

# fdisk -l | grep -o '/dev/sd[a-z][^0-5]'
/dev/sda:
/dev/sdb:
/dev/sdc:

但我仍然得到像 sda 和 sdb 这样有分区的磁盘。我只是想选取sdc唯一一个没有分区且未在系统上使用的分区。我想这样做的原因是这样我可以将它放在 bash 脚本中。

答案1

一个肮脏的快速循环正在执行此操作:

#!/bin/bash
# get all disks into an array
disks=($(ls  /dev/sd* | grep -v '[0-9]')) 

# loop over disks in array
for i in $(echo ${disks[@]}); do
    # check if it has a partition
    diskcheck=$(ls ${i}* | grep '[0-9]')
    # if not, print it
    if [ -z "$diskcheck" ]; then
        echo $i
    fi
done

相关内容