변수에 저장된 마운트 지점에 장치를 마운트합니다.

변수에 저장된 마운트 지점에 장치를 마운트합니다.

이 스크립트를 실행하고 있지만 "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

관련 정보