将设备挂载到存储在变量中的挂载点
Mounting devices to mountpoints stored in variables
我正在执行此脚本,但我无法找到一种方法将存储在“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*)
没有find
的一种方法。
#!/usr/bin/env bash
shopt -s nullglob
disks=(/dev/sd[b-z]1)
count=${#disks[*]}
printf '%s\n' "${disks[@]}"
for ((i=0;i<count;i++)); do
printf 'mkdir -p %s && mount %s %s\n' "/mnt/win$i" "${disks[$i]}" "/mnt/win$i"
done
使用我的 /dev/sd
输出
/dev/sdb1
/dev/sdc1
/dev/sdd1
mkdir -p /mnt/win0 && mount /dev/sdb1 /mnt/win0
mkdir -p /mnt/win1 && mount /dev/sdc1 /mnt/win1
mkdir -p /mnt/win2 && mount /dev/sdd1 /mnt/win2
Im doing this script and I cant see to find a way to accordingly mount the devices stored in the "devs" variable into the mount points listed in "mntpnt".
使用数组存储数据。
mapfile -t devs < <(find /dev/sd{b..z}1 2>/dev/null)
mapfile -t mntpnt < <(find /mnt/win*)
for i in "${!devs[@]}"; do
printf '%s %s\n' "${devs[$i]}" "${mntpnt[$i]}"
done
如@innocent Bystander评论中所述,使用
find /dev -name 'sd[b-z]1'
和
find /mnt -name 'win*'
虽然我建议使用:
find /mnt -name 'win[0-9]*'
- 我更喜欢在我的示例代码中使用 glob,而不是
find
。
我正在执行此脚本,但我无法找到一种方法将存储在“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*)
没有find
的一种方法。
#!/usr/bin/env bash
shopt -s nullglob
disks=(/dev/sd[b-z]1)
count=${#disks[*]}
printf '%s\n' "${disks[@]}"
for ((i=0;i<count;i++)); do
printf 'mkdir -p %s && mount %s %s\n' "/mnt/win$i" "${disks[$i]}" "/mnt/win$i"
done
使用我的 /dev/sd
/dev/sdb1
/dev/sdc1
/dev/sdd1
mkdir -p /mnt/win0 && mount /dev/sdb1 /mnt/win0
mkdir -p /mnt/win1 && mount /dev/sdc1 /mnt/win1
mkdir -p /mnt/win2 && mount /dev/sdd1 /mnt/win2
Im doing this script and I cant see to find a way to accordingly mount the devices stored in the "devs" variable into the mount points listed in "mntpnt".
使用数组存储数据。
mapfile -t devs < <(find /dev/sd{b..z}1 2>/dev/null)
mapfile -t mntpnt < <(find /mnt/win*)
for i in "${!devs[@]}"; do
printf '%s %s\n' "${devs[$i]}" "${mntpnt[$i]}"
done
如@innocent Bystander评论中所述,使用
find /dev -name 'sd[b-z]1'
和
find /mnt -name 'win*'
虽然我建议使用:
find /mnt -name 'win[0-9]*'
- 我更喜欢在我的示例代码中使用 glob,而不是
find
。