Bash

將設備掛載到儲存在變數中的掛載點

  • October 31, 2021

我正在執行此腳本,但我無法找到一種方法將儲存在“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*)

如果您只想安裝所有現有設備的第一個位置,則無需確定它們並保存它們。您可以在迭代時安裝它們:

#!/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 權限的認識推回給使用者。

這是一個替代方案:

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

引用自:https://unix.stackexchange.com/questions/675064