Вопросы по bash.

В теме Mplayer и \"Папки совместимого копьютера\". я монтировал расшаренные ресурсы к таблетке. Подгрузку модулся cifs.ko и собственно само монтирование реализовал в виде пары строк bash-скрипта:

#! /bin/bash
insmod /lib/modules/2.6.21-omap1/extra/cifs.ko
mount -t cifs //192.168.1.3/video /home/user/MyDocs/.video/PC -o iocharset=utf8,codepage=cp866,user=xxx,password=yyy
mount -t cifs //192.168.1.3/music /home/user/MyDocs/.sounds/PC -o iocharset=utf8,codepage=cp866,user=xxx,password=yyy

Хотелось бы дополнить этот скрипт. Есть несколько вопросов
1. Как реализовать в этом скрипте проверку на то, загружен ли модуль и если загружен то не грузить его больше;
2. Как проверить, не примонтированы ли еще данные ресурсы и если примонтированы, то не монтировать.

Первая проблема не так критична, т.к если модуль загружен то он уже не будет грузится и выдаст ошибку, а вот шары все равно монтируются в любом случае. И чтобы ресурс отмонтировать, то надо это сделать столько раз, сколько примонтировал. Может ли кто-нибудь подсказать что-то по этим вопросам?
lsmod | grep имя_модуля
На первый вопрос dik уже ответил. На второй ответ такой: либо mount без параметров, потом по выводу grep:
mount | grep точка_монтирования или_имя_шары
Либо то же самое вы увидите в /etc/mtab
grep что_то /etc/mtab

Еще можно где-то в /proc и /sys посмотреть, но на вскидку не скажу, да и результат будет такой же. Не нужно оно.
Ребят, я идею понимаю. Я не знаю как реализовать в силу того что не знаю bash. Как это вписать в скрипт?
#!/bin/bash

state=`lsmod | grep \"cifs\"`
if [ \"$state\" == \"\" ]; then
insmod /lib/modules/2.6.21-omap1/extra/cifs.ko
fi

state=`mount | grep \"/home/user/MyDocs/.video/PC\"`
if [ \"$state\" == \"\" ]; then
mount -t cifs //192.168.1.3/video /home/user/MyDocs/.video/PC -o iocharset=utf8,codepage=cp866,user=xxx,password=yyy
else
umount /home/user/MyDocs/.video/PC
fi

state=`mount | grep \"/home/user/MyDocs/.sounds/PC\"`

if [ \"$state\" == \"\" ]; then
mount -t cifs //192.168.1.3/music /home/user/MyDocs/.sounds/PC -o iocharset=utf8,codepage=cp866,user=xxx,password=yyy
else
umount /home/user/MyDocs/.sounds/PC
rmmod cifs.ko
fi
Спасибо! Немножко подпилил и получил то что надо! А bash на первый взгляд не так уж и сложен... ;)
null:
#!/bin/bash

state=`lsmod | grep \"cifs\"`
if [ \"$state\" == \"\" ]; then
insmod /lib/modules/2.6.21-omap1/extra/cifs.ko
fi

state=`mount | grep \"/home/user/MyDocs/.video/PC\"`
if [ \"$state\" == \"\" ]; then
mount -t cifs //192.168.1.3/video /home/user/MyDocs/.video/PC -o iocharset=utf8,codepage=cp866,user=xxx,password=yyy
else
umount /home/user/MyDocs/.video/PC
fi

state=`mount | grep \"/home/user/MyDocs/.sounds/PC\"`

if [ \"$state\" == \"\" ]; then
mount -t cifs //192.168.1.3/music /home/user/MyDocs/.sounds/PC -o iocharset=utf8,codepage=cp866,user=xxx,password=yyy
else
umount /home/user/MyDocs/.sounds/PC
rmmod cifs.ko
fi

Все хорошо - только проверять на непустоту строк рекомендуется так -

if [ -z \"$state\" ]; then

Bash весьма привередлив - однажды можно получить совсем не то что хочется.
alex2ndr:
Все хорошо - только проверять на непустоту строк рекомендуется так -

if [ -z \"$state\" ]; then


Хм, так может грамотнее, нопомоему и этот вариант \"безпроигрышный\". Если он чем то в каких то ситуациях может отличаться от вашего варианта, то поясните, интересно послушать.
DarkTroll:
Хм, так может грамотнее, нопомоему и этот вариант \"безпроигрышный\". Если он чем то в каких то ситуациях может отличаться от вашего варианта, то поясните, интересно послушать.

Увы - я не настолько знаток bash чтобы вот так сходу придумать вариант в котором это может не сработать. Просто если уж собираетесь писать на bash то стоит ознакомиться с Advanced Bash-Scripting Guide - в нем описаны основные подводные камни. Обычно стоит следовать его указаниям(те кто уровень этого руководства превзошел могут и не следовать) - если не хочется познакомиться с фееричными и непонятными глюками. Лично я несколько раз познакомился (не на данную тему) - больше не хочу. Только еще раз обращу ваше внимание на то что bash это не python - здесь имхо поменьше возможностей для одинаковых алгоритмов.
Давно хотел начать учить python, да все не приходилось. Будет отпуск - попробую. ;)
могу книженцию сунуть
Спасибо за предложение. Как будет время - обязательно займусь и обращусь. ;)