Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1

Użytkownik


Witam.
Mam dosyć nietypowy problem , próbuje odczytać zawartość płyty DVD jednak system jej nie widzi na windowsie jest tak samo , "łapie" dopiero po kiludziesieciu probach , nie chce recznie wysuwac , wsuwać i czekać az płyta "załapie"
chciałem napisać skrypt ,który zrobi to za mnie
#!/bin/bash while true do if[ $? == 0]; then break; else eject eject -t sleep 5; mount /dev/scd0 2>/dev/null sleep 30; fi done
gdy zmienna $?=0 czyli naped zostal poprawnie zamontowany to skrypt mial sie przerwac ale nie chce on dzialac , moze ktos to sprawdzic?
Offline


Członek DUG
1. Dobrze, dobrze... Zacznijmy od tego że albo wcięło wcięcia, albo nie miałeś wcięć od początku. Stąd błędy składni, ale to chyba nie oto chodziło.
2. Problemem jest, co sprawdziłem doświadczalnie, że zawsze $? jest w skrypcie ustawione na 0 po uruchomieniu. Stąd owy break; zawsze zakończy skrypt od razu po jego uruchomieniu.
3. Ten sleep 30 jest niepotrzebny. On zmieni $? na 0 zawsze a tego nie chcesz.
#!/bin/bash
EXIT_STATUS=1
while true
do
if [ "${EXIT_STATUS}" == 0 ]; then
echo "debug: exit()"
exit 0
else
echo "debug: try mount"
eject
eject -t
sleep 5
mount /dev/scd0 &> /dev/null &
wait $!
EXIT_STATUS=$?
echo "debug: exit status="${EXIT_STATUS}
fi
donez tym że
mount /dev/scd0 &> /dev/null &
wait $!
można zastąpić
mount /dev/scd0 &> /dev/null
Offline
Strony: 1