Portál AbcLinuxu, 12. května 2025 05:06
Zdravim, velmi jednoduche a napadite :)
pato@debian:~$ date --date="2010-01-01 00:00:00" Fri Jan 1 00:00:00 GMT 2010 pato@debian:~$ date --date="2010-01-01 00:00:00 30 minutes" Fri Jan 1 00:30:00 GMT 2010 pato@debian:~$ date --date="2010-01-01 00:00:00 30 minutes 1 hour" Fri Jan 1 01:30:00 GMT 2010 pato@debian:~$ date --date="2010-01-01 00:00:00 30 minutes 1 hour 1 day 23 seconds " Sat Jan 2 01:30:23 GMT 2010
pato@debian:~$ date --date="2010-01-01 00:00:00" Fri Jan 1 00:00:00 GMT 2010 pato@debian:~$ date --date="2010-01-01 00:00:00 1 week ago" Fri Dec 25 00:00:00 GMT 2009 pato@debian:~$ date --date="2010-01-01 00:00:00 1 week ago 1 hour ago" Thu Dec 24 23:00:00 GMT 2009 pato@debian:~$ date --date="2010-01-01 00:00:00 next" date: invalid date `2010-01-01 00:00:00 next' pato@debian:~$ date --date="2010-01-01 00:00:00 5 hours next" date: invalid date `2010-01-01 00:00:00 5 hours next' pato@debian:~$ date --date="2010-01-01 00:00:00 yesterday" Thu Dec 31 00:00:00 GMT 2009 pato@debian:~$ date --date="2010-01-01 00:00:00 tomorrow" Sat Jan 2 00:00:00 GMT 2010Samozrejme pre --date="$VARIABLE" moze byt aj premenna, trebars zo suboru citat
for i in `cat timestamps.txt` do date --date="$i 30 minutes" doneKeby si potreboval upravit nejaku mnozinu datumov atd atd. :)
for i in `cat timestamps.txt` do date --date="$i 30 minutes" >> new_timestamps.txt doneMrzi ma treti prispevok za sebou. Nabuduce to bude lepsie. :)
$ datumcas=`date --date="2010-01-01 00:00:00" "+%Y-%m-%d %H:%M:%S"` && echo $datumcas 2010-01-01 00:00:00 $ datumcas= date --date="$datumcas 30 minute" +"%Y-%m-%d %H:%M:%S" 2010-01-01 00:30:00
Jen místo "+30 minute
" zadávej "30 minute
".
datumcas=`date --date="$datumcas 30 minute" +"%Y-%m-%d %H:%M:%S"`; echo $datumcas
$()
to funguje přesně jak chceš.
Tohle je názorná ukázka, jak je v shellu občas důležité dávat pozor na mezery. Protože je za prvním rovnítkem mezera, znamená to, že ve skutečnosti používáte konstrukci
var=value cmd -args
která znamená "spusť příkaz 'cmd -args
' s proměnnou var
nastavenou na hodnotu value
. Používá se to např. takto:
LC_TIME=ru_RU.UTF-8 date DISPLAY=:1 konsole & rpm -qa --queryformat '%{NAME}\n' | LC_ALL=C sort -u
Ve vašem případě jste spustil příkaz date
s uvedenými parametry a prázdnou hodnotou proměnné datumcas
.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.