Odp: Auto kopiowanie
Na to masz ba to prosty sposób - status co jest robione wkładaj do pliku np. /tmp/status.txt
A lcd4linux niech po prostu sobie wyświetla zawartość pliku - wtedy masz na wyświetlaczu status operacji.
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
eko.one.pl → Oprogramowanie / Software → Auto kopiowanie
Strony Poprzednia 1 2 3
Zaloguj się lub zarejestruj by napisać odpowiedź
Na to masz ba to prosty sposób - status co jest robione wkładaj do pliku np. /tmp/status.txt
A lcd4linux niech po prostu sobie wyświetla zawartość pliku - wtedy masz na wyświetlaczu status operacji.
juz prawie jestem w domu, tylko powiedz jak zmusic aby kazdy wpis był w logu na początku a nie kolejnym, lub jak zmusic L4L do czytania ostatniej linijki no i wreszcie czy można wysłać komende czyszczącą log.
Wrzucaj po prostu przez > a nie >> bo będzie zawsze jedna linia.
Jak chcesz z pliku wyciągnąc pierwszą linię to head -n 1 jak ostatnią to tail -n 1
wszystko fajnie działa ale mam 3 pytania:
1. Czy da sie zmienić ekran startowy/koncowy w Lcd4linux bo drażnią mi oko te napisy ![]()
2. Czy po wyjęciu pendrive jest on odmontowywany czy trzeba to robić ręcznie za każdym razem ?
3. Jak połączyć wykonanie polecenia w skrypcie z lirc, chodzi mi oto np: aby skrypt zapytał czy chem odmontowac pena i jeśli zostanie wciśnięty ok na pilocie to odmontuje a jak coś innego to skrypt się zakończy
1. rekompilując źródła, bo chyba w opcjach tego nie ma o ile jeszcze pamętam
2. Powinien być odmontowany. Chociaż jeżeli jakiś proces z niego korzysta to może tak się stać i będzie wisiał.
3. Tzn jak jak? Wciskasz przycisk na pilocie, jeżeli dysk jest zamontowany to go odmontuj i tyle.
3. chodzi mi o to że skrypt wykonuje jakieś tam zadanie np kopiowanie pliku z pedrive na HDD, a na końcu skrypt pyta co zrobić czy np: odmontować dysk czy pozostawić i wtedy danym przyciskiem np OK potwierdzam i dysk zostaje odmontowany i skrypt się zakańcza albo innym przyciskiem anuluje odmontowanie i skrypt się zakańcza.
To chyba nie tak. Jak skrypt od kopiowania się zakończy to niech ustawi status że się zakończył i L4L może wyświetlić status że zakończono kopiowanie. Wtedy jak wciskasz przycisk, powiedzmy "1" na pilocie i status jest ustawiony to robisz umount, jak 2 to nie robisz nic (w sensie nie robisz umount).
Chyba potrzebuje bardzie łopatologicznego wytłumaczenia ![]()
Tak też powinno chyba działać
przykładowy skrypt i konfig lirca:
#!/bin/sh /etc/rc.common
start() {
cp /syf/lirccopy /etc/lircrc && /etc/init.d/lircd restart &&
echo kopiowanie > /syf/plik.txt & cp /mnt/penek/F/*.mp3 /syf && echo koniec kopiowania > /syf/plik.txt && sleep 5 && echo Czy odmontować Pena? > /syf/plik.txt && echo TAK - OK NIE - * >> /syf/plik.txt
}
stop() {
rm /syf/plik.txt
}Lircrc:
begin
prog = irexec
button = OK
config = umount /dev/sdb1 && echo Odmontowano > /syf/plik.txt && cp /syf/lircdefault /etc/lircrc && /etc/init.d/lircd restart
end
begin
prog = irexec
button = ACQUIRE-IMAGE # czyli *
config = cp /syf/lircdefault /etc/lircrc && /etc/init.d/lircd restart
endI pilot wraca do ustawień początkowych
Chyba że jakoś prościej się da
Mniej więcej w ten sposób.
dziwna sprawa ![]()
root@Gargoyle:~$ /etc/init.d/kopia restart
/etc/init.d/kopia: line 11: syntax error: unexpected "}"
o co chodzi ?? przeciez działało
już naprawione. głupi błąd, przeniosło } z końca linji do następnej zamiast postawić od nowej i czytało jako polecenie a nie zakończenie polecenia ![]()
Czy takie coś zadziała ?
#!/bin/sh /etc/rc.common
start() {
if [ find /mnt/USBB -name "*[mpg|mp3|avi]" ; then
# tu jakaś komenda
Trochę dziwna składania. Albo for i in *.mpg *mp3; do albo find /path -name *.mp3 -exec cośtam '{}'
#!/bin/sh /etc/rc.common
start() {
if find /mnt/USBB -name "*[mpg|mp3|avi]" -exec echo znaleziono pliki > /plik.txt '{}'
fi
}czyli: jesli w /USBB znajdzie pliki mpg,mp3,avi to wykona się echo znaleziono pliki > /plik.txt czy tak ??
Bez ifa. Samo find tylko. Wygoogluj sobie składnię.
1. rozumiem że polecenie zostanie wykonane jeśli zostaną znalezione pliki ??
2. chcem jeszcze dodać do tego skryptu polecenie które się wykona jeśli nie zostaną znalezione te pliki czy wystarczy dodać ! przed -name w drugim poleceniu ??
czyli tak:
#!/bin/sh /etc/rc.common
start() {
find /mnt/USBB -name "*[mpg|mp3|avi]" -exec echo znaleziono pliki > /plik.txt '{}'
find /mnt/USBB ! -name "*[mpg|mp3|avi]" -exec echo znaleziono pliki > /plik.txt '{}'
}
Coś kombinujesz. Find po prostu szuka plików. Jak znajdzie to dla każdego uruchamia to po exec.
A drugi przykład - szuka plików innych niż zdefiniowana nazwa. To chyba nie to co chciałeś.
kombinuje bo spodobała mi się zabawa z programowaniem a że sa to poczatki to dla tego zadaje tyle pytań ![]()
dokładnie chodzi mi o to aby skrypt przeszukał dany katalog i jesli znajdzie w nim wskazane pliki to wykona polecenie, a jeśli nie znajdzie tych określonych plików to wykona inne polecenie.
Find szuka plików. Więc to że nie ma plików o podanych nazwach musisz sobie oprogramować osobno.
chodzi mi aby wykożystać coś takiego w tym skrypcie:
if [ -e moj_plik ]
then
echo "Masz plik moj_plik"
else
echo "Nie masz pliku moj_plik"
fi
lub bardziej złożone:
if warunek1
then
polecenie1
elif warunek2
polecenie2
elif warunek3
polecenie3
else
polecenie4
fi
o co mu chodzi ??
root@Gargoyle:~$ /etc/init.d/testowy restart
find: -exec CMD must end by ';'
#!/bin/sh /etc/rc.common
start() {
find /mnt/USBB -name "*[mpg|mp3|avi]" -exec echo znaleziono pliki > /plik.txt '{}'
}
Składnia - średnik na końcu.
jak wstawiam to i tak wyświetla ten błąd
#!/bin/sh /etc/rc.common
start() {
find /mnt/USBB -name "*[mpg|mp3|avi]" -exec echo znaleziono pliki > /plik.txt '{}' ;
}
ok znalazlem
czasem jeden znak i psuje wszsytko ![]()
No ale naprawdę poszukał byś jak składnia polecenie wygląda: -exec ... '{}' \; http://unixhelp.ed.ac.uk/CGI/man-cgi?find
No ale naprawdę poszukał byś jak składnia polecenie wygląda: -exec ... '{}' \; http://unixhelp.ed.ac.uk/CGI/man-cgi?find
No ale naprawdę poszukał byś jak składnia polecenie wygląda: -exec ... '{}' \; http://unixhelp.ed.ac.uk/CGI/man-cgi?find
Strony Poprzednia 1 2 3
Zaloguj się lub zarejestruj by napisać odpowiedź
eko.one.pl → Oprogramowanie / Software → Auto kopiowanie
Forum oparte o PunBB, wspierane przez Informer Technologies, Inc