好吧,也许这不是解决这个问题的最佳方法,但我能够找到一种方法来获得我想要的输出。如果有人对解决方案有更好的建议,我想听听。
UNMOUNTED="" for disk in /sys/block/sd*; do if [ -d ${disk} ]; then if udevadm info --query=property --path=${disk} | grep -q ^ID_BUS=ata; then if [ $(cat ${disk}/size) -ne 0 ]; then blk=$(cut -d'/' -f4 <<<${disk}) if ! (df -h | grep -q ${blk}); then UNMOUNTED="${UNMOUNTED} /dev/${blk}" fi unset blk fi fi fi done UNMOUNTED=$(sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' <<<${UNMOUNTED})
当然,最后一行是为了消除多余的空白区域。