首页 > 解决方案 > 如果已经存在,则 Bash 脚本分区跳过

问题描述

我正在尝试使用以下脚本创建分区。它可以工作,但有时我需要重新运行相同的脚本,因为在我遇到错误(就像已经在使用中)时出现了一些自动化的东西。

parted /dev/sdc --script mklabel gpt mkpart xfspart xfs 0% 100%
mkfs.xfs /dev/sdc1
mkdir -p /opt/app
lsblk
echo "/dev/sdc1    /opt/app    xfs     defaults   0  1"  >>/etc/fstab
mount -a
df -Th

当我再次执行相同的脚本时出现错误日志。

+ parted /dev/sdc --script mklabel gpt mkpart xfspart xfs 0% 100%
Error: Partition(s) on /dev/sdc are being used.
+ mkfs.xfs /dev/sdc1
mkfs.xfs: /dev/sdc1 contains a mounted filesystem

/dev/sdc如果文件系统已经挂载,我该如何跳过?

标签: bash

解决方案


您可以检查挂载是否已经存在,如果找到则跳过脚本;

if grep -qs '/dev/sdc' /proc/mounts; then
    echo "Skipping mount since /dev/sdc already exists"
else
    parted /dev/sdc --script mklabel gpt mkpart xfspart xfs 0% 100%
    mkfs.xfs /dev/sdc1
    mkdir -p /opt/app
    lsblk
    echo "/dev/sdc1    /opt/app    xfs     defaults   0  1"  >>/etc/fstab
    mount -a
    df -Th
fi

推荐阅读