Технический форум по робототехнике.
Vooon » 12 ноя 2007, 00:05
линуксоиды подскажите как написать bash-скрипт.
задча:
есть папка содержащая iso-образы CD-дисков,
ножно рекурсивно их всеж подмоунтедь к соотв. папкам.
например:
есть образ: ./protheus7.iso
нужно замаунтить в ./mounted/protheus7/
содержимое образа.
как это сделать?
ПС: с bash я знаком поверхностно, очень желательны камменты.
Strijar » 12 ноя 2007, 19:48
а рекурсивно то зачем?
Образов много? Может проще один раз прописать в fstab?
Vooon » 13 ноя 2007, 01:55
нет, в фстаб писать бессмысленно, образов довольно много и могут появляться новые
идея в том, что в один каталог скидывают образы а в другом после запуска скрипта появляются каталоги с именами исошников и в них соотв образы замаунчены
вобщем алгоритм примерно такой:
1. получить список всех *.iso файлов из $src
2. перебирать список файлов:
2.1. создать каталог <имя образа> в каталоге $dst
2.2. umount "${src}/<имя образа>"
2.3. mount -O utf-8 "${src}/<имя образа>" "${dst}/<имя образа>"
Strijar » 13 ноя 2007, 11:19
Ну вот ты все и написал

Вот те для "рыбы"
- Код: Выделить всё • Развернуть
#!/bin/bash
for file in `find -type f -name "*.iso"` ; do
name = `basename $file`
done
А дальше man bash и сам!

Vooon » 13 ноя 2007, 14:33
хе, я просто не достаточно знаю "книгу бэшей"

спасибд за рыбу, дальше все просто
Vooon » 13 ноя 2007, 19:14
вот так написал:
- Код: Выделить всё • Развернуть
#!/bin/bash
src=`realpath $1`
dst=`realpath $2`
cd $src
for file in `find -type f -name "*.iso"` ; do
name=`basename ${file}`
echo "${src}/${name} -> ${dst}/${name}/"
umount "${src}/${name}"
rm -rf "${dst}/${name}"
mkdir "${dst}/${name}"
mount -o loop "${src}/${name}" "${dst}/${name}"
echo "iter '${name}' done"
done
echo 'done'