Ich erstelle dieses Skript und finde keine Möglichkeit, die in der Variable „devs“ gespeicherten Geräte entsprechend in die in „mntpnt“ aufgeführten Einhängepunkte einzubinden.
Ich hoffe, ich habe mich klar ausgedrückt. Hier ist das bisherige Skript:
#!/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*)
Antwort1
Wenn Sie nur die ersten Positionen aller vorhandenen Geräte mounten möchten, müssen Sie diese nicht ermitteln und speichern. Sie können sie einfach mounten, während Sie iterieren:
#!/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
Wenn ich das für mich schreiben würde, würde ich die sudo
Befehle nicht einschließen. Stattdessen würde ich verlangen, dass das Skript unter ausgeführt wird sudo
. Die Erkenntnis, dass dieses Skript Root-Rechte benötigt, muss an den Benutzer zurückgewiesen werden.
Antwort2
Hier ist eine Alternative:
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