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!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2013-02-06 23:12:54

  P@blo - Nadworny matematyk

P@blo
Nadworny matematyk
Skąd: Wrocław v Jasło
Zarejestrowany: 2010-11-11

[bash]Pojęcie czasu w funkcji a w prostym skrypcie

Cześć,

Mam pewien problem, którego nie rozumiem otóż:

Kod:

#!/bin/bash
date1=`date +%s`
date2=`date +%s -d "$1"`

if [ $date2 -lt $date1 ];then
    echo "Czas się nie cofa..."
    exit 1 
fi

echo $[date2-date1]

To działa wyśmienicie jako skrypt i jest git. Powiedzmy że jest czas na kompie "02/06/2013 22:12" no i jako parametr daje mu "02/07/2013 7:00" i to działa. Jak daje mu czas "02/07/2013 23:00" to też działa ;)

Działa tzn wynik jest dodatni ;)

Teraz coś modyfikuję:

Kod:

#!/bin/bash
mySleep(){
    date1=`date +%s`
    date2=`date +%s -d"$1"`

    if [ "$date2" -lt "$date1" ];then
        echo "Czas się nie cofa..."
        exit 1 
    fi

    echo "$[date2-date1]"
}
mySleep $1

To już nie działa tak samo jak poprzednie. Drugi skrypt czyli poprzedni 'jako funkcja' nie widzi godziny. Mogę mu podać czas "02/06/2013 23:00" a on wyświetli mi komunikat, "czas się nie cofa" bo nie widzi 23:00...

Może mi to ktoś wytłumaczyć i jak to naprawić?

Pozdrawiam

Ostatnio edytowany przez P@blo (2013-02-06 23:15:19)


ThinkPadX220i
| Procesor: Intel(R) Core(TM) i3-2310M CPU @ 2.10GHz |
|  Debian: sid   |   Arch: amd64   |   Sound: alsa   |
| No DE | WM: DWM  |  DM: .bash_profile  |  BIOS+MBR |

Offline

 

#2  2013-02-07 00:04:49

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: [bash]Pojęcie czasu w funkcji a w prostym skrypcie

mySleep "$1"

Offline

 

#3  2013-02-07 10:25:06

  P@blo - Nadworny matematyk

P@blo
Nadworny matematyk
Skąd: Wrocław v Jasło
Zarejestrowany: 2010-11-11

Re: [bash]Pojęcie czasu w funkcji a w prostym skrypcie

Dzięki ;)


ThinkPadX220i
| Procesor: Intel(R) Core(TM) i3-2310M CPU @ 2.10GHz |
|  Debian: sid   |   Arch: amd64   |   Sound: alsa   |
| No DE | WM: DWM  |  DM: .bash_profile  |  BIOS+MBR |

Offline

 

#4  2013-02-07 13:37:17

  P@blo - Nadworny matematyk

P@blo
Nadworny matematyk
Skąd: Wrocław v Jasło
Zarejestrowany: 2010-11-11

Re: [bash]Pojęcie czasu w funkcji a w prostym skrypcie

Dobra jednak to nie jest to czego potrzebuje... Tzn troche źle opisałem problem. Potrzebuje aby funkcja mySleep z drugiego skryptu brała argument ale jakiś dowolny (date) a nie $1 (ze skryptu) i potem w bebechach tej funkcji chce operować na zmiennej $1. Nie wiem czy jasno.

Chce aby funkcja brała swój argument i traktowała go jak to robi skrypt bash'a.


ThinkPadX220i
| Procesor: Intel(R) Core(TM) i3-2310M CPU @ 2.10GHz |
|  Debian: sid   |   Arch: amd64   |   Sound: alsa   |
| No DE | WM: DWM  |  DM: .bash_profile  |  BIOS+MBR |

Offline

 

#5  2013-02-07 15:37:56

  Minio - Użyszkodnik

Minio
Użyszkodnik
Skąd: Poznań, Polska
Zarejestrowany: 2007-12-22
Serwis

Re: [bash]Pojęcie czasu w funkcji a w prostym skrypcie

Co prawda nie rozumiem pytania, ale i tak napiszę:
parametry pozycyjne funkcji obsługujesz w dokładnie taki sam sposób co parametry pozycyjne skryptu.

Offline

 

#6  2013-02-07 17:14:17

  P@blo - Nadworny matematyk

P@blo
Nadworny matematyk
Skąd: Wrocław v Jasło
Zarejestrowany: 2010-11-11

Re: [bash]Pojęcie czasu w funkcji a w prostym skrypcie

No to mi to nie działa. Czyli twierdzisz, że powyższy skrypt z funkcją poprawiony o mySleep "parametr" powinien działać?

EDIT: Działa. Nie działało bo date trochę inaczej widzi ;)

Dzięki za pomoc.

Ostatnio edytowany przez P@blo (2013-02-07 18:23:50)


ThinkPadX220i
| Procesor: Intel(R) Core(TM) i3-2310M CPU @ 2.10GHz |
|  Debian: sid   |   Arch: amd64   |   Sound: alsa   |
| No DE | WM: DWM  |  DM: .bash_profile  |  BIOS+MBR |

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)