変数に格納されたマウントポイントにデバイスをマウントする

変数に格納されたマウントポイントにデバイスをマウントする

私はこのスクリプトを実行していますが、「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。このスクリプトにはルート権限が必要であることをユーザーに認識させます。

答え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

関連情報