bash, jak sprawdzi

Potrzebujesz pomocy z C, C++, perl, python, itp.
doman18
Posty: 84
Rejestracja: 04 lipca 2009, 17:33

bash, jak sprawdzić czy dany katalog jest pusty?

Post autor: doman18 »

Witam.
W związku z tym, że nie udało mi się z konfiguracją autofs więc chciałbym sobie usprawnić montowanie. Na razie używam 8 plików.
- 2 do montowania USB
- 2 do odmontowania USB
- 2 do montowania Udostępnionych
- 2 do odmontowania Udostępnionych

Chciałbym napisać instrukcję warunkową, która sprawdza czy w danej lokalizacji jest jakiś plik/katalog. Jeżeli nie istnieje to montuje tam urządzenie a jeżeli istnieje to odmontuje np.

Kod: Zaznacz cały

iif [ -f /home/doman/Publiczny/Edytka/jakikolwiek_plik] || [-d /home/doman/Publiczny/Edytka/jakikolwiek_katalog];
then
umount /home/doman/Publiczny/Edytka
else
mount -t cifs //192.168.0.2/Udostępnione /home/doman/Publiczny/Edytka
Tylko jak wpisać ten ,,jakikolwiek''. A może to inaczej można zrobić?
winnetou

Post autor: winnetou »

Dziękuje...
doman18
Posty: 84
Rejestracja: 04 lipca 2009, 17:33

Post autor: doman18 »

Trochę nie rozumiem tej linii:

Kod: Zaznacz cały

awk '{print $3}' |cut -d"/" -f 3`
Mógłbyś wyjaśnić co ona robi? Bo $3 to 3 argument funkcji mount czy jak?

Bo zrobiłem taki plik:

Kod: Zaznacz cały

#!/bin/sh 
ZAMONTOWANY=`mount |grep pen2 |awk '{print $3}' |cut -d"/" -f 3`
if [ $ZAMONTOWANY != "pen2" ] 
then 
 mount /media/pen2 
else 
 umount /media/pen2
fi
/etc/fstab:

Kod: Zaznacz cały

/dev/sdb1    /media/pen2    vfat        user,noauto                0    0
I nie działa. Wyrzuca błąd:

Kod: Zaznacz cały

./usb.sh: line 3: [: !=: oczekiwano operatora jednoargumentowego
Dobrze że przynajmniej przy normalnym montowaniu z komendą:

Kod: Zaznacz cały

mount /media/pen2 && pcmanfm /media/pen2
działa.
winnetou

Post autor: winnetou »

Dziękuje...
doman18
Posty: 84
Rejestracja: 04 lipca 2009, 17:33

Post autor: doman18 »

No a co z tym błędem?
ODPOWIEDZ