Montaje de dispositivos en puntos de montaje almacenados en variables

Montaje de dispositivos en puntos de montaje almacenados en variables

Estoy haciendo este script y no veo cómo encontrar una manera de montar en consecuencia los dispositivos almacenados en la variable "devs" en los puntos de montaje enumerados en "mntpnt".

Espero ser claro al explicarme, aquí está el guión hasta el momento:

#!/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*)

Respuesta1

Si sólo desea montar las primeras posiciones de todos los dispositivos existentes, no necesita determinarlas ni guardarlas. Puedes simplemente montarlos mientras iteras:

#!/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

Si estuviera escribiendo esto por mí, no incluiría los sudocomandos. En su lugar, requeriría que el script se ejecute en sudo. Haga que el usuario se dé cuenta de que este script necesita privilegios de root.

Respuesta2

Aquí tienes una alternativa:

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

información relacionada