достаточно было "окавычить"
[ "`grep $to_dev /proc/mounts`" ] || mount /dev$to_dev /mnt$to_dev
пустая строка - не смонтировано - монтирует
не пустая строка - смонтировано - пропускает
-------------
чуть подправленный код от sfs, копирует только pfs, не ругается
проверял под ддр, под пра думаю тоже пойдет, под ричи надо наверное чуть править(?)
#!/bin/sh
#Задаём раздел
to_dev=$(yad --list \
--column=Раздел \
--column=Размер \
--column=ФС $(fdisk -l|grep ^/|grep -v swap|tr -d '*'| cut -b5- | awk '{print $1" "$5" "$7}') --height=200 --width=400 | cut -f1 -d'|')
#echo $to_dev== ;exit
[ "$to_dev" ] || exit 0
[ "`grep $to_dev /proc/mounts`" ] || mount /dev$to_dev /mnt$to_dev
#Имя каталога
while true; do
to_dir=$(yad --text="Введите имя каталога для установки" --entry --entry-text="Richy") || exit
mkdir -p /mnt$to_dev/$to_dir
[ `ls /mnt$to_dev/$to_dir` ] && yad --text="Каталог $to_dir не пустой, измените имя" || break
done
#Создаём подкаталоги
mkdir -p /mnt/$to_dev/$to_dir/base /mnt/$to_dev/$to_dir/modules /mnt/$to_dev/$to_dir/optional
#Копируем подключенные модули
#losetup -a | awk '{print $3}' | while read m
losetup | awk '/^\/dev/ {print $6}' | grep pfs | while read m
do
echo "Копируется $(basename $m)"
# cp $m /mnt/$to_dev/$to_dir/$(basename $(dirname $m))/
[ "`basename "$m" |egrep '^[0-9]'`" ] && dd=base || dd=modules
cp "$m" /mnt/$to_dev/$to_dir/$dd/
#echo "$m /mnt/$to_dev/$to_dir/$dd/" #debug
done