Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
zet120
Wytworny Kaczor
Posty: 280 Rejestracja: 31 maja 2008, 07:35
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Openbox
Architektura: x86_64
Post
autor: zet120 » 11 lut 2009, 20:22
Plik, który służy jak przykład wygląda tak:
jak, czym najprościej odjąć te godziny aby otrzymać długość dnia wyrażoną w godzinach i minutach?
Dwimenor
Przebojowy Jelonek
Posty: 1260 Rejestracja: 18 mar 2008, 16:14
Płeć: Mężczyzna
Wersja Ubuntu: 13.10
Architektura: x86_64
Post
autor: Dwimenor » 11 lut 2009, 20:51
łatwiej na minutach policzyć. Zamień to "7:08" na minuty od północy ( 428 ), tak samo dla zachodu. Potem odejmij minuty (zachód-wschód). Wynik przelicz na godziny i minuty.
Poniższe zdanie jest fałszywe.
Powyższe zdanie jest prawdziwe.
leon1313
Zakręcona Traszka
Posty: 668 Rejestracja: 02 sty 2006, 19:35
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: KDE Plasma
Architektura: x86
Post
autor: leon1313 » 11 lut 2009, 21:12
Za dużo kombinowania: jeśli odejmiesz minuty, i wyjdzie ci mniej niż 0, to dodaj do nich 60 i odejmij 1 od różnicy w godzinach.
jeśli h1:m1 to wschód, a h2:m2 to zachód to:
Kod: Zaznacz cały
m3=m2-m1;
jeśli m3<0 to m3=m3+60 i h2=h2-1 ; koniec "jeśli"
h3=h2-h1;
Różnica to h3:m3
"Poza tym dostałeś PLONKa i zabraniam Ci pisać na te grupe!!! Powiedziałem PLONK i sie zamknij i nawet nie knuj rzeby mi odpisywać! Zabraniam!!!"
zet120
Wytworny Kaczor
Posty: 280 Rejestracja: 31 maja 2008, 07:35
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Openbox
Architektura: x86_64
Post
autor: zet120 » 12 lut 2009, 14:23
Hmmm?
A czy mógłbym prosić o odpowiedź zrozumiałą dla przeciętnego "kilkacza"?
Czyli innymi słowy znajdzie się dobra dusza, która jest w stanie skrobnąć odpowiedni skrypt czy też polecenie?
P.S.
Google w tej materii "proponuje" mi kurs programowania w różnych językach, ale to chyba nie dla mnie.
mozg07
Sędziwy Jeż
Posty: 36 Rejestracja: 27 wrz 2007, 13:32
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:
Post
autor: mozg07 » 12 lut 2009, 14:35
A w czym? Z kontekstu domyślam się, że chodzi o basha, ale pewien nie jestem. I co dokładnie dostaję na wejściu. Taką linię:
czy może po prostu:
czy jeszcze inaczej?
Struchu
Serdeczny Borsuk
Posty: 116 Rejestracja: 23 mar 2008, 19:58
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86
Post
autor: Struchu » 12 lut 2009, 14:53
To ja krótko i perlowato:
Kod: Zaznacz cały
#!/usr/bin/perl -w
my $wejscie = <STDIN>;
if($wejscie =~ /.*?(\d{1,2}):(\d{1,2}).*?(\d{1,2}):(\d{1,2})/ )
{
my $min = $4 - $2;
my $hou = 0;
if($min < 0)
{
$min += 60;
$hou = -1;
}
$hou += $3 - $1;
print "$hou:$min\n";
} else {
print "Błąd wejścia\n";
}
Przyjmuje wejście postaci:
Wschód słońca: 7:08 Zachód słońca: 16:55
Ma zielone, kocie oczy...
zet120
Wytworny Kaczor
Posty: 280 Rejestracja: 31 maja 2008, 07:35
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Openbox
Architektura: x86_64
Post
autor: zet120 » 12 lut 2009, 16:01
Ooo, dzięki za odzew.
Probuję z tym skryptem, ale coś nie chce mnie słuchać.
Aby wszystko było jasne cały plik wygląda tak:
Kod: Zaznacz cały
09-02-12 Wschód słońca: 7:04 Zachód słońca: 17:00
Dane meteo z godziny 15:43
Kierunek wiatru:
Temp.powietrza: 0.3 °C WNW Wilgotność: 83 %
Temp.odczuwalna: -2.4 °C Opady: 0.3 mm
Prędkość wiatru: 4.0 m/s
[OutsideTem] [OutsideHum]
Ciśnienie: 989.1 hPa Rising Slowly
nazywa się
pogoda , a umieszczony jest w
~/test
nUmer
Piegowaty Guziec
Posty: 11 Rejestracja: 26 lut 2009, 19:46
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Fluxbox
Kontakt:
Post
autor: nUmer » 28 lut 2009, 15:03
Kod: Zaznacz cały
#!/bin/sh
wschod=`grep -w "Wschód słońca" "$HOME"/test/pogoda|awk '{printf $4}'`
zachod=`grep -w "Zachód słońca" "$HOME"/test/pogoda|awk '{printf $7}'`
w1=`date --date="$wschod" +"%s"`
z1=`date --date="$zachod" +"%s"`
roznica=$[ z1 - w1 ]
godz=$[ roznica / 3600 ]
min=$[ roznica % 3600 / 60 ]
echo "${godz}h ${min}min"
zet120
Wytworny Kaczor
Posty: 280 Rejestracja: 31 maja 2008, 07:35
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Openbox
Architektura: x86_64
Post
autor: zet120 » 28 lut 2009, 17:38
Tytuł wątku zmieniłem mam nadzieję..."na lepszy"
Dzięki kolego
nUmer za kolejną propozycję, ale i ta nie chce u mnie działać.
Uruchamiam w konsoli i otrzymuję:
Kod: Zaznacz cały
zet120@zet120-desktop:~$ ~/Skrypty/godz.sh
/home/zet120/Skrypty/godz.sh: 8: z1: not found
/home/zet120/Skrypty/godz.sh: 9: roznica: not found
/home/zet120/Skrypty/godz.sh: 10: roznica: not found
h min
nUmer
Piegowaty Guziec
Posty: 11 Rejestracja: 26 lut 2009, 19:46
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Fluxbox
Kontakt:
Post
autor: nUmer » 28 lut 2009, 18:19
... musi działać!
pokaż co wyświetli polecenie
zet120
Wytworny Kaczor
Posty: 280 Rejestracja: 31 maja 2008, 07:35
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Openbox
Architektura: x86_64
Post
autor: zet120 » 28 lut 2009, 18:24
Dokładnie to:
Kod: Zaznacz cały
zet120@zet120-desktop:~$ sh -x /home/zet120/Skrypty/godz.sh
+ grep -w Wschód słońca /home/zet120/test/pogoda
+ awk {printf $4}
+ wschod=6:31
+ grep -w Zachód słońca /home/zet120/test/pogoda
+ awk {printf $7}
+ zachod=17:28
+ date --date=6:31 +%s
+ w1=1235799060
+ date --date=17:28 +%s
+ z1=1235838480
+ roznica=$[ z1 - w1 ]
/home/zet120/Skrypty/godz.sh: 1: z1: not found
+ godz=$[ roznica / 3600 ]
/home/zet120/Skrypty/godz.sh: 1: roznica: not found
+ min=$[ roznica % 3600 / 60 ]
/home/zet120/Skrypty/godz.sh: 1: roznica: not found
+ echo h min
h min
zet120@zet120-desktop:~$
nUmer
Piegowaty Guziec
Posty: 11 Rejestracja: 26 lut 2009, 19:46
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Fluxbox
Kontakt:
Post
autor: nUmer » 28 lut 2009, 18:28
a spróbuj tak
Kod: Zaznacz cały
#!/bin/bash
wschod=`grep -w "Wschód słońca" "$HOME"/test/pogoda|awk '{printf $4}'`
zachod=`grep -w "Zachód słońca" "$HOME"/test/pogoda|awk '{printf $7}'`
w1=`date --date="$wschod" +"%s"`
z1=`date --date="$zachod" +"%s"`
roznica=$(( z1 - w1 ))
godz=$(( roznica / 3600 ))
min=$(( roznica % 3600 / 60 ))
echo "${godz}h ${min}min"
Godziny pobiera i przetwarza prawidłowo - wydaje się to być jakiś błąd składni.
Jak to nie zadziała, to ja już nic nowego nie wymyślę.
zet120
Wytworny Kaczor
Posty: 280 Rejestracja: 31 maja 2008, 07:35
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Openbox
Architektura: x86_64
Post
autor: zet120 » 28 lut 2009, 18:31
Pięknie dziękuję.
Działa!
ithn
Piegowaty Guziec
Posty: 2 Rejestracja: 08 mar 2009, 16:31
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Post
autor: ithn » 12 mar 2009, 16:09
Mam takie pytanie odnośnie polecenia
.
Czy da się w jakiś sposób przekierować wynik działania tego polecenia do pliku, a nie na terminal?
Próbowałem
, ale nie działa.
rryk
Serdeczny Borsuk
Posty: 206 Rejestracja: 04 mar 2008, 16:00
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: GNOME
Kontakt:
Post
autor: rryk » 13 mar 2009, 09:00
Kod: Zaznacz cały
#!/bin/bash
wschod=`grep -w "Wschód słońca" "$HOME"/test/pogoda|awk '{printf $4}'`
zachod=`grep -w "Zachód słońca" "$HOME"/test/pogoda|awk '{printf $7}'`
w1=`date --date="$wschod" +"%s"`
z1=`date --date="$zachod" +"%s"`
roznica=$(( z1 - w1 ))
godz=$(( roznica / 3600 ))
min=$(( roznica % 3600 / 60 ))
echo "${godz}h ${min}min" > plik
teraz już działa ^^ chociaż nie wiem po co ci wynik zapisywać do pliku
ithn
Piegowaty Guziec
Posty: 2 Rejestracja: 08 mar 2009, 16:31
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Post
autor: ithn » 13 mar 2009, 15:49
Dzięki, ale nie chodziło mi o wynik skryptu powyżej tylko o
, które wyświetla w terminalu po kolei co się dzieje w skrypcie.
----------------
\\EDIT - Rozwiązanie problemu
Powyższy problem rozwiązany. Może komuś się to przyda (mnie się przydało
).
Są dwa sposoby:
I
II
Kod: Zaznacz cały
script jakis_plik.log [enter]
sh -x ./nazwa_skryptu.sh
[ctrl+d] (przerywa działanie 'script')
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 3 gości