将设备安装到存储在变量中的安装点

将设备安装到存储在变量中的安装点

我正在执行此脚本,但我无法找到一种方法来相应地将“devs”变量中存储的设备安装到“mntpnt”中列出的安装点中。

希望我能清楚地解释自己,到目前为止的脚本如下:

#!/bin/bash

count=$(find /dev/sd{b..z}1 2>/dev/null | wc -l)
dirnames=$(printf "win%d " $(seq $count))

for i in $dirnames
do
        sudo mkdir -p /mnt/$i
done

devs=$(find /dev/sd{b..z}1 2>/dev/null)
mntpnt=$(find /mnt/win*)

答案1

如果您只想安装所有现有设备的第一个位置,则无需确定它们并保存它们。您可以在迭代时安装它们:

#!/bin/sh
i=0
for dev in /dev/sd[b-z]1
do
    mnt="/mnt/win$((i+=1))"
    sudo mkdir -p "$mnt"
    sudo mount "$dev" "$mnt"
done

如果我为自己写这篇文章,我不会包含这些sudo命令。相反,我要求脚本在sudo.将这个脚本需要 root 权限的认识推回给用户。

答案2

这是一个替代方案:

find /dev -name "*sd[b-z]1" | \
  while IFS= read -r i; do
    dir="/mnt/win${i##*[^1]}"
    sudo mkdir -p "$dir"
    sudo mount "$i" "$dir"
  done

相关内容