You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Bash脚本中将devs变量存储的设备挂载到mntpnt变量对应挂载点

Bash 设备批量挂载脚本修复方案

原脚本的核心问题是没有将设备、挂载点转为有序的数组结构,无法按索引一一对应挂载,同时普通字符串存储find结果容易出现解析异常。修改后的完整可运行脚本如下:

#!/bin/bash

# 收集所有符合要求的设备,转为有序数组,排序保证顺序稳定
readarray -t devs < <(find /dev/sd{b..z}1 2>/dev/null | sort)
dev_count=${#devs[@]}

# 批量创建对应数量的挂载点
for ((i=1; i<=dev_count; i++)); do
    sudo mkdir -p /mnt/win${i}
done

# 收集挂载点列表,转为有序数组,排序规则和设备列表保持一致
readarray -t mntpnt < <(find /mnt/win* -maxdepth 0 -type d 2>/dev/null | sort)

# 按索引一一对应执行挂载
for idx in "${!devs[@]}"; do
    # 挂载NTFS分区可替换为下行:sudo mount -t ntfs-3g "${devs[$idx]}" "${mntpnt[$idx]}"
    sudo mount "${devs[$idx]}" "${mntpnt[$idx]}"
done

注意事项

  • readarray依赖Bash 4.0及以上版本,绝大多数主流Linux发行版均支持;如果使用老旧版本Bash,可以改用数组赋值写法devs=( $(find /dev/sd{b..z}1 2>/dev/null | sort) ),该写法不支持路径带空格的场景,普通使用足够
  • 两次find后都添加了sort命令,保证设备列表和挂载点列表顺序严格匹配,不会出现挂载错位的问题
  • 挂载NTFS格式分区需要先安装ntfs-3g软件包,再替换脚本中对应的mount命令参数即可
  • 如果需要开机自动挂载,可以将对应挂载规则写入/etc/fstab文件,无需每次开机手动执行脚本

内容的提问来源于stack exchange,提问作者FelonVLAN

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 00:06:05