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
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
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 done
z tym że
mount /dev/scd0 &> /dev/null &
wait $!
można zastąpić
mount /dev/scd0 &> /dev/null
Offline
Strony: 1