[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bash Einzeiler Zeit+Datum letzter Eintrag dmesg



Moin Alexander!

Am 12.08.2011 14:17, Alexander Skwar schrub:
> let lastentry=$(dmesg|sed -e '$!d' -e 's,.\(.*\)\..*,\1,');let boot=$(sed
> 's,\..*,,' /proc/uptime);let lastdate=$boot-$lastentry;date -d "$lastdate
> seconds ago"

Auf einem frisch gestarteten Lenny meckert die bash:

~$ let lastentry=$(dmesg | sed -e '$!d' -e 's,.\(.*\)\..*,\1,');let
boot=$(sed 's,\..*,,' /proc/uptime);let
lastdate=$boot-$lastentry;date=$(date -d "$lastdate seconds ago");echo $date
-bash: let: lastentry=: syntax error: operand expected (error token is "=")
Fr 12. Aug 19:17:56 CEST 2011

Aber das Ergebnis stimmt :-) Auf einem neu gestarteten Squeeze meckert nix.


So geht's aber auch ohne Fehler
let lastentry=$(dmesg sed -e '$!d' -e 's,.\(.*\)\..*,\1,'
                          -e 's, *,,g');
let boot=$(sed 's,\..*,,' /proc/uptime);
let lastdate=$boot-$lastentry;
date=$(date -d "$lastdate seconds ago");
echo $date

Liegt wohl an den Leerzeichen...

> Ist aber auch nicht sonderlich kürzer ;) Dafür wird aber nur
> sed als externes Tool verwendet. Zuvor hast Du nur cut
> verwendet, dafür aber besonders bei $lastentry mehrfach
> aufgerufen. Ach, und tail brauche ich da auch nicht mehr.
> 
> Ob's besser ist — weiss nicht ;)

Macht nix, sieht magischer aus :-) Danke!

Gruß
Frank


Reply to: