Hallo, Am Fre, 04 Sep 2009, Christian Brabandt schrieb:
On Fr, 04 Sep 2009, David Haller wrote:
week_of_month() { eval echo '$[' $(date '+%W - $(date -d %Y/%m/01 "+%%W") +1') ']' } week_of_month
#v+ chrisbra@t41:~$ week_of_month bash: 08: value too great for base (error token is "08") chrisbra@t41:~$ date Mo 23. Feb 00:00:43 CET 2009 #v-
Ich sag ja, Shell und Datumsarithmetik ist eklig???
Was denn? Was kann denn ich dafür, daß du obiges nicht verstehst und das Problem daran selber lösen kannst? $ set -x $ eval echo '$[' $(date -d 2009/02/23 '+%-W - $(date -d %Y/%m/01 "+%%-W")' ) '+1 ]' ++ date -d 2009/02/23 '+%-W - $(date -d %Y/%m/01 "+%%-W")' + eval echo '$[' 8 - '$(date' -d 2009/02/01 '"+%-W")' '+1 ]' +++ date -d 2009/02/01 +%-W ++ echo 5 5 (geht auch mit '$((' ... '))' statt '$[' ']'.) Ergo: ==== week_of_month() { eval echo '$((' $(date '+%-W - $(date -d %Y/%m/01 "+%%-W")' ) '+1 ))' ; }; week_of_month Alternativ könnte man statt $[] bzw. $(( )) auch eine passende Eingabe für bc erzeugen, aber einen externen Prozess aufzurufen ist halt "teuer". HTH, -dnh --
[Netzwerkkarten] Wer jetzt errät, mit welchen das Ding läuft, bekommt eine Tulpe geschenkt... die teile [..] laufen in letzter zeit irgendwie ueberhaupt nicht mehr nett. muss da wohl mal mit frischer blumenerde rangehen. [>S. Posner und f. paulsen] -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org