[+] Bash, niedziałająca pętla for w poleceniu at
: 05 sierpnia 2012, 13:41
Cześć.
Piszę sobie budzik, który w zależności od dnia będzie mnie budził o odpowiedniej godzinie. Mam stworzony skrypt uruchamiany za pomocą crona codziennie o 1 rano, który pobiera sobie dzień tygodnia z polecenia date, a następnie uruchamia polecenie:
Zawartość plik_budzika to:
Pętla for ma za zadanie co 15 sekund zwiększać głośność o 5% w przedziale 25%-95%, jednak nie spełnia swojego zadania. Pętla puszczona w konsoli (już po wykonaniu zadania ustawionego za pomocą at) zwiększa głośność. Co może być przyczyną że pętla w poleceniu at nie chce działać?
Edycja:
Już sobie poradziłem. Z niewiadomych mi przyczyn powłoka sh nie przyjmuje {25..95..5}, po zastąpieniu danej części na sztywno wpisanymi wartościami 25 30 35 40 45 50 55 itd., wszystko działa jak powinno.
Piszę sobie budzik, który w zależności od dnia będzie mnie budził o odpowiedniej godzinie. Mam stworzony skrypt uruchamiany za pomocą crona codziennie o 1 rano, który pobiera sobie dzień tygodnia z polecenia date, a następnie uruchamia polecenie:
Kod: Zaznacz cały
at GG:MM (tutaj w zależności od dnia tygodnia) -f plik_budzika
Zawartość plik_budzika to:
Kod: Zaznacz cały
if [[ -n `ps -A | grep moc` ]]; then sleep 1; else mocp -S; fi;
mocp -v 0;
mocp -p;
for i in {25..95..5}; do mocp -v $i; sleep 15; done;
Edycja:
Już sobie poradziłem. Z niewiadomych mi przyczyn powłoka sh nie przyjmuje {25..95..5}, po zastąpieniu danej części na sztywno wpisanymi wartościami 25 30 35 40 45 50 55 itd., wszystko działa jak powinno.