Вы когда-либо думали о предоставлении экрана GNU попытки? Чтобы быть очень честным, у меня нет большого опыта с tmux, но экран всегда делал задание приятно.
/sys/fs/btrfs
не перечисляет все файловые системы btrfs (, например, не смонтированную ), протестировано на Debian / Ubuntu (4.14.0 -1 / 4.10.0 -42 ).
Я бы использовал проги btrfs для их поиска:
btrfs filesystem show | awk '/ path /{print $NF}'
А так как проги btrfs могут перечислять подтомы только смонтированных файловых систем, ваш скрипт недалек от того, что я бы использовал:
#!/bin/bash
readarray -t btdev < <(sudo btrfs filesystem show | awk '/ path /{print $NF}' )
for i in "${btdev[@]}"; do
device="${i}"
mountpoint=/var/lib/btrfs/tmp/mnt/$(basename "$i")
[ -d "$mountpoint" ] || mkdir "$mountpoint"
grep -qs $mountpoint /proc/mounts
[ $? -ne 0 ] && mount -v "$device" "$mountpoint"
while read -r subvol; do
# whatever you want
done < <(btrfs subvolume list "$mountpoint")
umount $mountpoint
rmdir $mountpoint
done
Не тестировалось на нескольких -файловых системах устройств (raid -0/1/10/5/6)