通过 bash 安装硬盘

通过 bash 安装硬盘

我正在尝试编写一个 bash 脚本,检查我的硬盘驱动器恰好与哪个 sda/sdb/sdc 相关联,并根据哪一个来安装我的硬盘驱动器。

if (( `sudo fdisk -l | grep /dev/sdc | grep "1.8 TiB"` )) 
        then
            echo sdc1 with 2TiB found.
            sudo mount /dev/sdc1 /mnt/2tbOrange/
fi

我收到以下“除以 0”错误,但我不知道原因。

 ((: Disk /dev/sdc: 1.8 TiB, 2000365289472 bytes, 3906963456 sectors : division by 0 (error token is "dev/sdc: 1.8 TiB, 2000365289472 bytes, 3906963456 sectors ")

答案1

出现此错误的原因是双括号((...))用于算术,因此斜线表示除法。有关更多详细信息,请参阅Bash 运算符 [[ 与 [ 与 ( 与 (( 之间有什么区别?在 Unix 和 Linux 上。

正如评论中所讨论的,您可以使用grep -q。如果找到匹配项,则返回 true,否则返回 false。

if sudo fdisk -l | grep /dev/sdc | grep -q "1.8 TiB"; then ...

这就是说,这是一个XY问题。您编写的代码没有按照您描述的方式执行。从快速搜索来看,最好的解决方案似乎是分别使用mount -Lmount -U通过文件系统标签或 UUID 进行挂载。您不需要解析的输出fdisk -l,也不需要 if 语句。如果您需要更多详细信息,请告诉我;您可能需要提出一个新问题。

相关内容